Git fetch работает на ВСЕХ ветвях или только на текущей? - PullRequest
1 голос
/ 16 октября 2010

У меня есть удаленное репо на github, и на моей локальной машине у меня есть несколько разных веток (поэтому я могу переключаться между ветвями, используя "git checkout master", "git checkout branch2" и т. Д.).
Когда я запускаю команду "git fetch", я никогда не уверен, получает ли она обновления для ВСЕХ этих веток или ТОЛЬКО для той ветки, в которой я сейчас работаю (ту, которую я недавно "извлекал").
Другими словами, если я работаю в branch2 и хочу объединить изменения, сделанные кем-то другим, в branch1, нужно ли мне сделать:

git checkout branch1
git fetch
git checkout branch2
git merge branch1

Или я могу просто сделать это:

git fetch
git merge branch1

1 Ответ

1 голос
/ 16 октября 2010

По умолчанию он получает все заголовки из удаленного репо.
Но на эти ветви ссылается refspec remoteRepoName / branchName

Так что в вашем случае это будет:

git fetch
git merge remoteRepoName/branch1

git remote может перечислить пульт, который вы зарегистрировали в своем репо, чтобы получить правильное имя удаленного репо.


Примечание: поскольку вы используете DVCS, который представляет публикацию (push / pull, , которая ортогональна ветвлению ), вы можете выбрать тот же branch2 с удаленного устройства и объединить его в вашем местном branch2. Другими словами, «кто-то еще» не должен делать «branch1», чтобы внести свой вклад в ваши усилия по разработке. Он / она может создать branch2, который будет существовать в «пространстве имен» удаленного репо, и будет извлекать / объединять (т.е. «тянуть») в вашем локальном репо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...