【Git学习笔记】6:配合远程库做分支管理,解决与本地分支的冲突

版权声明:本文为博主原创学习笔记,如需转载请注明来源。 https://blog.csdn.net/SHU15121856/article/details/82078111

查看信息

查看远程库信息

git remote -v

其中-v表示详细信息,输出:

origin  git@github.com:LauZyHou/testGit.git (fetch)
origin  git@github.com:LauZyHou/testGit.git (push)

其中fetch和push分别是抓取和推送的地址,如果没有推送到远程库的权限就看不到后者。

查看分支信息

git branch -av

其中-a表示连远程库的信息一起查看,-v表示详细信息,输出:

  dev                   0266471 合并修复bug-1234
* master                8843dd7 解决冲突
  remotes/origin/HEAD   -> origin/master
  remotes/origin/master 8843dd7 解决冲突

上面的部分是本地的分支信息,下面的是远程的分支信息,打*号的是当前所在的分支。

提交到远程分支

一开始在GitHub上创建远程库时,只有master分支而没有其它分支。现在使用一个有权限的用户,在本地master分支上做了修改并add到了暂存区,查看一下状态:
这里写图片描述
上一篇学了,暂存区和工作区都是本地共用的,但如果工作区有修改没有add或撤销,是不能切换分支的!切换分支以后,提示暂存区中发生了什么样的更改:
这里写图片描述
因为是共用的,因此切换分支并不会引起暂存区有什么改变,刚刚在master分支上做了修改然后add,到dev上一样存在:
这里写图片描述
确认一下当前切换到了dev分支:
这里写图片描述
在该分支上提交,会在**本地**dev分支上前进一个版本:
这里写图片描述
然后提交到远程库,因为这里没有做关联,就要显式指明远程分支名
这里写图片描述
之前在远程库里没有这个分支,提示创建了这个分支(上图中蓝色)。到GitHub上就能看到这个远程分支了:
这里写图片描述
按照廖老师教程里的说法,master和dev分支一定要在远程库中建立;bug分支看老板需求(一般不用);feature分支看需求,如果完成feature也要多人协作那就要在远程库中建立。

从远程分支clone

这是另外一种开始使用远程分支的方式,假如需要操作的远程分支已经存在,当使用git clone时:
这里写图片描述
即便远程库上已经有了dev分支,实际上只会clone下来master分支:
这里写图片描述
使用:

git checkout -b 本地分支 远程仓库名/远程分支名

来把远程分支创建到本地,并切换到该分支:
这里写图片描述
所以这时再去查看工作区,就会发现是和远程的dev分支一样而不是和master分支一样了。查看下分支:
这里写图片描述
现在就可以在这个分支上做工作了。

解决与本地分支的冲突

在多人开发中,自己把远程分支拿到了本地,然后别人提交到了那个远程分支上:
这里写图片描述
这时自己本地的这个分支就是旧的了,commit时候会发生冲突:
这里写图片描述
这时就要使用git pull从远程库上拉一份新的下来,本地的已经commit到版本库了,所以不必担心自己写的东西丢失。

这里如果提示no tracking information,就要手动指定一下远程分支和本地分支的关联:

git branch --track origin/dev dev

这里因为前面git checkout时候就指定了远程分支是哪个,所以直接就能pull下来。在git pull时很可能会出现冲突:
这里写图片描述
实际上还是pull下来了,只是以冲突的格式标注在了文件里。查看一下冲突在哪些文件里:
这里写图片描述
打开文件看一下,和之前学git merge时候的冲突格式是一样的:
这里写图片描述
手动解决冲突,再提交上去即可:
这里写图片描述
远程库上:
这里写图片描述

猜你喜欢

转载自blog.csdn.net/SHU15121856/article/details/82078111
今日推荐