git fetch origin создает новую ветку - PullRequest
1 голос
/ 04 июля 2011

Я синхронизирую свой код разработки на 2 машинах, используя git-репозиторий на USB-диске (следуя этим шагам Настройка git для резервного копирования и синхронизации между двумя компьютерами ).

Я помещаю свои изменения в голое хранилище на USB, а затем извлекаю и объединяю на другом компьютере.

Насколько я понимаю, эти две команды одинаковы, но их вывод отличается. Журнал показывает, что первая команда создает новую ветвь.

Method 1
git fetch origin
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /usb/backup/code
 * [new branch]      master     -> origin/master


Method 2
git fetch /usb/backup/code.git
From /usb/backup/code
 * branch            HEAD       -> FETCH_HEAD

1 Ответ

4 голосов
/ 04 июля 2011

Это потому что:

git fetch origin 

то же самое, когда git remote настроен по умолчанию, чем

git fetch origin +refs/heads/*:refs/remotes/origin/*

Он сообщит Git, что выбрать и где хранить полученный коммит.

Но:

git fetch path/to/.git

означает, что вы не пользуетесь настройкой refspec по умолчанию origin +refs/heads/*:refs/remotes/origin/*, что означает, что вы делаете:

git fetch path/to/.git HEAD:

(вы берете пульт HEAD без указания места его установки).
Полученный коммит сохраняется в FETCH_HEAD ref .

Подробнее см. " Трудно понять git-fetch".
(и "git fetch с путем вместо удаленного ")

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