无人机
一、第一步:
win系统下git安装
例如:Git-1.8.4-preview20130916.exe 或者 Git-2.33.1-64-bit.exe
为git 安装包 (该执行文件执行后安装仅是git工具,只能通过黑窗口命令行git bush here进行操作,所以一般还会同时安装TortoiseGit工具,使之可以像SVN一样可以图形化操作);
例如:TortoiseGit-2.3.0.0-64bit.msi 为一种git图形管理软件安装
TortoiseGit-LanguagePack-*.exe 为tortoisegit 的语言包。
以上安装包可以在网上找资源下载;
安装git安装包后 可在git bash黑窗口命令行中输入 git –version 如有版本信息返回则安装成功,例如回车后显示:
git version 2.3.0.0.windows.1;
Linux 下git 应该是自带的,直接就可以使用;
第二步:
假如远程服务器地址为 10.10.10.1。 在使用之前可以 ping 一下看能否连接,需要联系管理员开放远程服务器ip地址的访问权限。
远程git服务器使用SSH secure shell安全协议连接,并通过识别公钥来允许访问。因此要通过git工具访问服务器需要预先将git 的ssh 公钥发给 管理员,并由管理员分配用户所能访问的仓库。 而git 的 ssh 公钥则可以通过git bash 中的ssh-keygen 生成。
进入git安装目录中执行 git-bash.exe 。
输入命令ssh-keygen 分别输入文件名(默认为id_rsa)及查询密钥后即可生成私钥与公钥,私钥需要妥善保管,避免被窃。修改公钥名字为自己的名字后将其传给管理员。【生成公钥私钥可参考其它资源】
如果使用tortoiseGit 作为图形界面,则需要将之前生成的私钥进行转换为ppk 文件才可使用。
通过tortoisegit 目录下 bin文件夹下的puttygen.exe 加载私钥后再生成为ppk的私钥文件,然后再运行Pagean程序 ,将ppk文件添加到列表中即可(电脑每次重启需要重新添加才能使用tortoisegit)。
【参考】https://blog.csdn.net/weixin_42216094/article/details/118258271?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-118258271-blog-103990399.235v38pc_relevant_sort&spm=1001.2101.3001.4242.1&utm_relevant_index=1
puttykey的使用教程
当用户可以通过git访问服务器后,用户即可向服务器拉取git 仓库。默认的一个测试仓库为 gitTest 。 方式1:通过命令行git bash里运行git clone 地址为 git@10.10.10.1:gitTest.git . 方式2、通过tortoisegit右键相应选项下拉代码,如果可以拉取就代表与git服务器已经连接成功了。
【补充】公钥私钥生成后,需提交给管理员更新公钥后才能拉取(才能与服务器连接,其实也是通过记事本将公钥里面的文本内容添加到gitlab的web页面的SSH公钥添加处);
具体的git的使用教程可参阅:菜鸟教程git;
二、本人常用流程:
方式1、命令行拉取远程整个代码库到本地(在当前目录下右键Git bush here)
git clone git@10.20.20.1:dj2.0/baseboard.git
然后,再通过git checkout 分支名 切换到已存在的具体分支;
git checkout -b newBranch
等同于
git branch newBranch 新创建
git checkout newBranch 再切换到
查看本地和远程分支【★★★拉取远程整个代码库到本地后,要点进去到下一目录再右键git bash输入命令行】
git branch -a
方式2、新建本地文件夹后,可直接拉取远程代码库具体某分支代码到本地
例如:git clone -b r10_device git@git.ecovaces:Baseboard/universal_controller_platform.git
【★★★具体分支名前不要加origin 】;
3、 本地分支更新提交到远程分支:
现在提交commit 到本地分支,需要用户名+用户邮箱以便于记录提交人员信息;通过commit提交后本地分支上的代码就和你桌面文件夹的代码更新一致了;然后push到远程分支命令格式:
git commit
git push origin heIICboard:IICBoard 本地分支名称与远程分支不相同
git push origin IICBoard 本地分支名称与远程分支相同
★★★直接通过TortoiseGit右键进行commit、push、showlog等功能进行提交查看
【参考文章】https://blog.csdn.net/nodeman/article/details/89379592
/****************************************************************************************************/
本地一套/远程一套 (分布式版本控制系统)
示例:
1、git clone:
新建文件夹后右键TortoiseGit的git clone;
远程代码库URL:git@10.20.20.1:dj_2.0/sensorboard.git 直接把主干代码库所有克隆到本地文件夹;
但是不能 URL:git clone -b dev_dj30 git@10.20.20.1:mainboard.git 直接把主干代码库下某一具体分支克隆到本地文件夹;
实际操作结果如上:
如果想主干下某一具体分支克隆到本地只能用(git bash here 窗口命令行)执行 git clone -b dev_dj30 git@10.20.20.1:Omni_mainboard.git
2、git merge:
比如分支2(本地/远程该分支都已含)有新文件.c也想存到分支1,先右键将本地文件夹切换到分支1,然后再右键merge选择分支2,就合并到本地当前文件夹分支1
合并后,本地分支已有该新文件.c,然后push到远程线上服务器,这样本地和远程该分支都有.c文件了;
3、git pull: (限同时仅一个人修改同一个分支)
当远程库分支1的.c文件被A在本地修改并已同步到远程库分支1上后,B在其本地也要修改.c,
那么应该先拉取最新的分支1到B本地更新掉旧本地分支1,避免直接提交覆盖掉A修改的.c文件内容;
4、git fetch:
当switch/checkout分支时,选择栏没有出现想要的远程分支,可以git fetch更新下;
5、基于某分支的历史旧版本上,重新在用户本地创建新分支并修改提交代码
新建文件夹,然后链接目标远程分支git clone -b dev_dj30 git@10.20.20.1:mainboard.git拷贝到本地,右键show log 查看历史旧版本,选择基于的旧版本(可确认sha编号) 右键create branch at this version;
重新命名新的本地分支名并switch切换,ok后本地当前所在文件夹里的分支就切换到历史旧版本了;
/****************************************************************************************************/
gitlab
1、从gitlab网站上clone到本地库:
2、gitlab的web页面操作添加公钥:
【参考】
【1】https://blog.csdn.net/DGH2430284817/article/details/89916743/?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_utm_term~default-5–blog-121751451.235v38pc_relevant_sort&spm=1001.2101.3001.4242.4&utm_relevant_index=6
【2】https://blog.csdn.net/weixin_44867717/article/details/121751451?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169475911216800225579719%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=169475911216800225579719&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~rank_v31_ecpm-1-121751451-null-null.142v94insert_down1&utm_term=gitlab%E5%AF%86%E9%92%A5%E6%96%87%E4%BB%B6%E5%A6%82%E4%BD%95%E7%94%9F%E6%88%90&spm=1018.2226.3001.4187
三、TortoiseGit 使用指南
https://blog.csdn.net/nodeman/article/details/89379592
1、小乌龟操作基于旧分支下重新修改:
2、git switch和git checkout的区别
【ref】https://juejin.cn/post/7211316525512507447
两者的基本作用都是切换到想要切换的某分支上去;