2016-09-15 2 views
1

Пэра создал новую ветку.Почему git branch не отображает вновь созданную ветку?

Я побежал

git pull

git branch - Я не видел его новую ветвь.

Итак я ...

git checkout newBranch

git branch - Теперь я вижу, что его новый филиал

Почему git branch обновить только после того, как я побежал checkout вместо после pull?

ответ

3

Потому что, насколько я понимаю, git branch перечисляет только ваши филиалы. У вашего репозитория все еще есть удаленная ветка, поэтому вы можете проверить ветку. И как только вы проверите эту ветку, вы создали локальную версию указанной ветки.

Следовательно, почему git branch теперь показывает ветку после того, как вы ее проверили.

git branch -a - Lists all branches, both local and remote-tracking branches 
git branch or git branch --list - Lists all existing local branches 
git branch -r - Lists remote-tracking branches 
0
git branch 

показывает местные отделения

в список удаленных филиалов:

git branch -a 

, чтобы получить все удаленные ветви:

git fetch 

, то вы можете

git checkout newBranch 
+0

После того, как вы запрашиваете это newBranch до сих пор считается удаленный филиал? –

+0

после того, как он получил свое местное репо. – chenchuk

+0

Итак, я вернулся к своему первоначальному вопросу. Я запускал 'git pull', и это похоже на запуск' git fetch'. Поскольку ветка теперь является локальной ветвью, почему она не отображается, когда я запускаю 'git branch'? –

2

Если вы хотите, чтобы увидеть все ветви на удаленном репо можно использовать

git branch -a 

Я обычно использую это с Grep найти ветку я хочу.

git branch -a |grep <what I want> 

Если вы просто создать ветку с таким же именем, как ветви вашего партнёра он не будет работать, вы должны базировать его удаленного филиала

Ваш сверстников должен нажать на центральный репозиторий с что-то вроде

git push --set-upstream origin <branch name> 

Чтобы основывать свое отделение от удаленного филиала вы можете использовать

git checkout -b <branch_name> origin/<branch name> 
+0

Я получил копию своего филиала локально, используя 'git checkout newBranch'. Я проверил «git log», и я вижу его изменения. –

+0

'git branch' перечисляет местные филиалы. Он доступен, но он по-прежнему является удаленной ветвью, если вы не создали локальную ветвь для ее отслеживания. Выполняя 'git checkout newBranch', я думаю, что git предположил, что вы хотите отслеживать эквивалентную ветвь на удаленном репо, и, следовательно, вы создали свою локальную ветвь, и теперь' git branch' перечисляет ее. –

0

В вашем случае git checkout на самом деле не проверяет удаленный филиал newName, вместо этого он создает блестящую новую локальную ветвь newName, которая настроена для отслеживания удаленной ветви.

Таким образом, проверяя «newBranch» вы также создали одинаково с именем местного отделения «newBranch», которое затем, естественно, проявленные git branch