我知道我可以将任何远程分支获取到任何本地分支,但是是否还有某种快捷方式可以仅从被跟踪的远程分支获取到当前的跟踪本地分支(无需明确指定本地和远程分支名称) ?
动机:我只想获取当前分支的远程更改,以避免从当前不相关的分支获取(可能很大)更改。稍后我将在单独的步骤中合并/重新设置基准。
我知道我可以将任何远程分支获取到任何本地分支,但是是否还有某种快捷方式可以仅从被跟踪的远程分支获取到当前的跟踪本地分支(无需明确指定本地和远程分支名称) ?
动机:我只想获取当前分支的远程更改,以避免从当前不相关的分支获取(可能很大)更改。稍后我将在单独的步骤中合并/重新设置基准。
让我们假设您有master远程源,开发分支。你想同步master但不开发。
您可以执行以下步骤:
git fetch origin
git merge origin/master
更新:如果只需要获取分支:
git fetch origin master
git merge FETCH_HEAD
git fetch $(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | sed 's!/! !')
将现有答案中的一些东西结合在一起......
获取签出分支的名称:
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'
在 Git for Windows 中测试:
$ git --version
git version 2.25.1.windows.1
根据https://stackoverflow.com/a/12142066/25192 - 您可以使用它来查找当前分支的名称:
git rev-parse --abbrev-ref HEAD
...然后将其替换为 fetch 命令作为 refspec。
Git 是一个去中心化的VCS。当您进行提取时,您将完全同步两个存储库。分支只不过是附加在特定提交上的标签。我猜你的意思是git fetch
它不会对任何特定的分支进行任何合并或类似的事情。
http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html