如何在不影响当前分支的情况下获取远程分支并更新该分支的git的本地引用?例如,如果我这样做
$ git pull origin master
Run Code Online (Sandbox Code Playgroud)
origin/master合并到我当前的分支中.这也行不通
$ git fetch origin master
Run Code Online (Sandbox Code Playgroud)
那时我检查一下
$ git branch -r -v
origin/HEAD -> origin/master
origin/master 7cf6ec5 test 02
Run Code Online (Sandbox Code Playgroud)
origin/master ref"7cf6ec5 test 02"落后了.真正的起源/主人是"XXXXXX测试03". git fetch
只将更改拉入FETCH_HEAD,它没有上传本地origin/master ref.更新该ref的步骤是什么?
注意:
$ git fetch origin
Run Code Online (Sandbox Code Playgroud)
将获得所有远程引用并更新它们但不幸的是(a)很多混乱.(我不希望别人的30-50个随机分支知道有人不想要我的)和(b)因为分支在原点上删除了那些引用在下次我没有被本地删除git fetch origin
这意味着路径结束愚蠢的.
问题是,如何只获取一个分支并在本地更新其ref?
我想我正在寻找的是这个
$ git fetch origin master:refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
这确实有效,因为与'git fetch origin master'不同,我确实看到ref更新了.
任何理由都是错误的答案?我应该害怕什么?
git fetch origin
Run Code Online (Sandbox Code Playgroud)
这将获取所有远程分支并更新它们的远程跟踪分支。
现在您可以执行以下两件事之一
git checkout other-branch
git merge origin/other-branch
git checkout -
Run Code Online (Sandbox Code Playgroud)
或者
git push . origin/other-branch:other-branch
Run Code Online (Sandbox Code Playgroud)
如果您知道这将是快进合并,则最后一个选项是可以的。