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账户中:

Git快速入门

1、在Git工作空间,进入工程目录下例如:ORB-SLAM
$ cd ORB-SLAM
$ git status // 查看工作区状态

Git快速入门

显示为未追踪的文件,因此需要add命令,将文件从工作区汇到index区(暂存区)。

$ git add frame.cpp

$ git status

Git快速入门

表示文件已经进入index区域,还未commit。

$ git commit -m “frame.cpp commit”

Git快速入门

表示需要添加用户名和密码。

Git快速入门

2、查看信息

Git快速入门

3、推入远端

Git快速入门

合并操作:如何解决冲突

1、模拟另外一个人的工作区:

Git快速入门

2、修改frame.cpp中的内容

$ git status // 查看ORB-SLAM_other工作区的状态

Git快速入门

3、进行PUSH操作

$ git add . // 将当前目录中放入暂存区

Git快速入门

4、修改自己工作空间下的文件内容,并进行PUSH操作。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PXzNn86P-1586499377959)(C:\Users\22108\Desktop\git说明\14.PNG)]

提示失败。首先需要

$ git pull

5、文件融合

Git快速入门

表示自动融合文件,但是存在冲突。

$ git status // 提供了两种解决方案

(1)解决文件中的冲突;

(2)不再接收远端的变化

Git快速入门

"===="说明冲突的地方,上面说明本人的冲突地方,下面是远端的冲突地方。

协作商议决定文档修改方式。

Git快速入门

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自动融合失败:

Git快速入门

3、利用IDE进行融合操作(以Clion为例)

以工程的方式用Clion打开文件夹,选中工程右键,选择git->Resolve Conflicts,然后双击Modified

Git快速入门

在上述窗口进行冲突融合,之后点击应用。

最后在命令窗口进行PUSH的相关操作即可。