git本地分支与远程分支关联与解除

2020-06-20  本文已影响0人  北京硕爷

参考简书地址


作者:夕夕石(硕爷)


目 录

一、查看本地分支与远程分支的映射关系

二、建立本地分支与远程分支的映射关系

三、撤销本地分支与远程分支的映射关系

四、问题思考:本地分支只能跟踪远程的同名分支吗?


一、查看本地分支与远程分支的映射关系

(1)使用以下命令(注意是双v):

git branch -vv

(2)可以获得如下信息:

[xixishi@xixishideMacBook-Pro:java_fly (master)]$ git branch -vv
[xixishi@xixishideMacBook-Pro:java_fly (master)]$

(3)可以看到分支没有和远程分支建立任何映射,

此时若执行git pullgit push命令则不成功

(因为git此时不知道拉取/推送哪个远程分支和本地分支合并):

(4)如果有对应关系,对应的远程分支名会在中括号里:

[xixishi@shuoDeMBP:java_fly (feature/zs)]$ git branch -vv
* feature/zs 6bef8cc [origin/feature/zs] fix上一个bug

(5)若没有对应关系,就不会有这个中括号:

[xixishi@shuoDeMBP:java_fly (feature/zs)]$ git branch -vv
* feature/zs 6bef8cc fix上一个bug

二、建立本地分支与远程分支的映射关系

假设有个远程分支叫:addFile

// 注意:addFile是远程分支名
// 不需要指定本地分支名,是因为命令默认的本地分支即为当前分支
git branch -u origin/addFile 
git branch --set-upstream-to origin/addFile

建立关联后,再查看当前本地分支与远程分支的映射关系结果如下:

image

注意,如果报错fatal: Not a valid object name: 'master'.

原因:在git add ./ 之后没有 commit 提交,master分支中没有内容,所以无法建立新的分支。

解决方法:补充代码git commit -m "first commit"即可(参照上图)

三、撤销本地分支与远程分支的映射关系

撤销映射关系:

git branch --unset-upstream

使用 git branch -vv 查看关联关系:

[xixishi@xixishideMacBook-Pro:java_fly (master)]$ git branch --unset-upstream
[xixishi@xixishideMacBook-Pro:java_fly (master)]$
[xixishi@xixishideMacBook-Pro:java_fly (master)]$ git branch -vv
* master 2189c95 update
[xixishi@xixishideMacBook-Pro:java_fly (master)]$

四、问题思考:本地分支只能跟踪远程的同名分支吗?

<font color="red" size="5"> 答案是否定的 </font>

(1)刚开始关联关系如下:

image

(2)可以使 本地分支addFile远程分支editFile 建立映射关系:

image.png

(3)并且此时可以把本地分支addFile提交到远程分支editFile分支中去:

image

作者:夕夕石(硕爷)


上一篇 下一篇

猜你喜欢

热点阅读