我知道我可以fetch any remote branch to any local branch,但是还有某种快捷方式可以从跟踪的远程分支到当前的跟踪本地分支(不需要明确指定本地和远程分支名称) ?
动机:我想只为当前分支获取远程更改,以避免从当前不相关的分支获得(可能很大)更改。我稍后将在单独的步骤中合并/改组。
答案 0 :(得分:7)
假设您 来源 远程 主 , develop 分支机构。 您要同步 主 ,但不要 开发 。
您可以执行以下步骤:
git fetch origin
git merge origin/master
更新:如果只需要获取分支:
git fetch origin master
git merge FETCH_HEAD
答案 1 :(得分:3)
git fetch $(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | sed 's!/! !')
答案 2 :(得分:0)
Per https://stackoverflow.com/a/12142066/25192 - 您可以使用它来查找当前分支的名称:
git rev-parse --abbrev-ref HEAD
...然后将其替换为fetch命令作为refspec。
答案 3 :(得分:0)
将现有答案中的一些内容结合在一起...
获取已签出分支的名称:
git rev-parse --abbrev-ref HEAD
要回答您的问题,您如何仅获取当前分支?在这里,您可以使用别名fetchthis
。像git fetchthis
一样使用。
git config --global alias.fetchthis '!bname=$(git rev-parse --abbrev-ref HEAD); git fetch origin $bname`
在Windows的Git中测试:
$ git --version
git version 2.25.1.windows.1
答案 4 :(得分:-4)
Git是一个分散的 VCS。当您进行提取时,您将完全同步两个存储库。分支不仅仅是附加在特定提交上的标签。我猜你的意思是git fetch
,它不会对任何特定的分支进行任何合并或类似的事情。
http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html