git fetch远程分支和远程ref

gma*_*man 8 git

如何在不影响当前分支的情况下获取远程分支并更新该分支的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?

gma*_*man 6

我想我正在寻找的是这个

$ git fetch origin master:refs/remotes/origin/master
Run Code Online (Sandbox Code Playgroud)

这确实有效,因为与'git fetch origin master'不同,我确实看到ref更新了.

任何理由都是错误的答案?我应该害怕什么?


Ada*_*ruk 1

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)

如果您知道这将是快进合并,则最后一个选项是可以的。