问题
I know that I can fetch any remote branch to any local branch, but is there also some kind of shortcut to fetch just from the tracked remote branch to the current tracking local branch (without the need to specify the local and remote branch names explicitly)?
Motivation: I want to just fetch remote changes for the current branch to avoid getting (maybe large) changes from currently irrelevant branches. I will merge/rebase later in a separate step.
回答1:
Let's assume that you have origin remote with master, develop branches. You want to sync master but not develop.
You can do the following steps:
git fetch origin
git merge origin/master
UPDATE: in case of only branch have to be fetched:
git fetch origin master
git merge FETCH_HEAD
回答2:
git fetch $(git rev-parse --symbolic-full-name --abbrev-ref @{upstream} | sed 's!/! !')
回答3:
Per https://stackoverflow.com/a/12142066/25192 - you can use this to find the name of the current branch:
git rev-parse --abbrev-ref HEAD
...then substitute this into the fetch command as the refspec.
回答4:
Git is a decentralized VCS. Whe you do a fetch, you're synch'ing the two repositories entirely. Branches aren't nothing but labels attached on specific commits. I guess you mean git fetch
which doesn't do any merges or stuff like that to any particular branches.
http://www.kernel.org/pub/software/scm/git/docs/git-fetch.html
来源:https://stackoverflow.com/questions/11347712/git-fetch-only-for-current-branch