Git快速入门
SSH进行git clone
利用SSH的方式进行git clone需要在GitHub账户中添加SSH key。
$ 打开Git Bash // 此处必须打开Git Bash,不是windows的shell。
$ ssh-****** -t rsa -b 4096 -C “[email protected]” // 一直Enter即可
$ clip < ~/.ssh/id_rsa.pub // 拷贝key
打开SSH and GPG keys,直接粘贴即可。
PUSH操作:基本操作
将新建文件推入到GitHub账户中:
1、在Git工作空间,进入工程目录下例如:ORB-SLAM
$ cd ORB-SLAM
$ git status // 查看工作区状态
显示为未追踪的文件,因此需要add命令,将文件从工作区汇到index区(暂存区)。
$ git add frame.cpp
$ git status
表示文件已经进入index区域,还未commit。
$ git commit -m “frame.cpp commit”
表示需要添加用户名和密码。
2、查看信息
3、推入远端
合并操作:如何解决冲突
1、模拟另外一个人的工作区:
2、修改frame.cpp中的内容
$ git status // 查看ORB-SLAM_other工作区的状态
3、进行PUSH操作
$ git add . // 将当前目录中放入暂存区
4、修改自己工作空间下的文件内容,并进行PUSH操作。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PXzNn86P-1586499377959)(C:\Users\22108\Desktop\git说明\14.PNG)]
提示失败。首先需要
$ git pull
5、文件融合
表示自动融合文件,但是存在冲突。
$ git status // 提供了两种解决方案
(1)解决文件中的冲突;
(2)不再接收远端的变化
"===="说明冲突的地方,上面说明本人的冲突地方,下面是远端的冲突地方。
协作商议决定文档修改方式。
6、重新PUSH
$ git add .
$ git commit -m “fix conflict” 或者 git commit -m “frame.cpp commit”
$ git push //使远端更新
注:如果再git bash中运行git push无法连接到远端,可以尝试使用windows的shell(按住SHIFT + 鼠标右键)。
多分支协作
1、模拟多个分支操作
在本地新创建一个分支:(windows下的shell即可)
$ git branch branch1 // 新建一个branch1分支
$ git checkout branch1 // 进入branch1分支
$ git status // 查看状态,如果发现存在 .idea文件,可以在.gitignore文件中加入.idea/ 将此文件忽略。
在工作区新建一个KeyFrame.cpp文件,并将文件push进远端,之后可在GitHub账户的对应项目下看到branch1的内容。
同时在模拟另外的工作区,新建另外一个分支:
$ git branch branch2
$ git checkout branch2
修改KeyFrame.cpp文件内容,并将文件push到远端。
查看GitHub账户下对应的项目,可以看到branch1和branch2两个分支。
2、master对branch1和branch2分支进行融合
$ git checkout master
$ git pull // 更新本地工作区
对两个不同的分支分别执行merge操作:
$ git merge branch1 或者如果本地没有branch1,需要从远端融合分支,git merge origin/branch1
$ git push
如果两个同名文件中内容存在不一致,导致push自动融合失败:
3、利用IDE进行融合操作(以Clion为例)
以工程的方式用Clion打开文件夹,选中工程右键,选择git->Resolve Conflicts,然后双击Modified
在上述窗口进行冲突融合,之后点击应用。
最后在命令窗口进行PUSH的相关操作即可。