Git-本地分支与远程分支的追踪关系篇

日常的Git操作,比如git push master,git pull dev等类似操作,我们有时候可能都会心惊胆战,因为我们会有多个远程分支版本有可能操作错了,就会导致不必要的麻烦。当然我们可以避免这种情况,我们经常做的就是:

git push/pull origin master

git push/pull origin dev

 但是,有一定洁癖的程序员觉得每次在提交/拉取代码的时候,总是要多输入origin master/dev 很是麻烦,我直接git pull/push 不好吗?这个操作是可以,但是我们为了不引起不必要的麻烦,所以我们就需要确认本地分支和远程分支的追踪关系。这个追踪关系的大概意思就是说,我们每一个本地分支都对应一个远程分支,就是我们直接git push/pull的时候,默认的那个远程分支。

我们可以通过如下命令查看关系:

git branch -vv

显示如下:

Git-本地分支与远程分支的追踪关系篇 

我们可以清晰的在结果中看到,本地分支dev对应的是远程分支origin/dev,本地分支master对应的远程分支是origin/master。那么我们就可以安心的直接使用git push/pull而不用没回都要在后面添加origin master/dev了。

很多人按照我如上的操作后发现,某些本地分支对应的不是我们想要的远程分支,那我们要如何修改呢?

1、进入到当前项目下的.git文件夹,并打开config文件。打开后我们会看到如下图:

Git-本地分支与远程分支的追踪关系篇

参数解释如下 

1、[remote "origin"] 这一项可以修改对应的远程仓库地址。

2、[branch "master"] 中的merge可以修改对应的远程仓库。那么[branch "dev"]是同理的。

2、修改想要的远程分支即可。比如想要修改本地分支master对应远程分支dev那么把merge = refs/heads/master修改为merge = refs/heads/dev即可。

想看是否修改完成我们再次执行git branch -vv即可。

 :有些同学会发现打开config文件后,发现没有[branch "master"]这一项,那么您的项目应该没有执行过git clone或git pull命令,导致没在config文件中生成该配置。

 

参考:

https://blog.****.net/deaidai/article/details/79639885