Почему "git status" не отображает непущенные коммиты в ветке?
все в названии...
Я прочитал этот вопрос:Просмотр Unpushed Git Commits
но я не понимаю, почему git status
отображает все непущенные коммиты в главной ветви, но ничего не отображает в других ветвях.
может кто-нибудь объяснить это?
редактировать
вот какие команды и выходы я сделал/получил:
aurelien@server:/home/repo/$ git branch
new_feature
* master
aurelien@server:/home/repo/$ git checkout new_feature
Switched to branch 'new_feature'
aurelien@server:/home/repo/$ echo test > newfile.txt
aurelien@server:/home/repo/$ git add newfile.txt
aurelien@server:/home/repo/$ git commit -m "Test commit"
[new_feature 51c6a64] Test commit
1 file added
aurelien@server:/home/repo/$ git status
# On branch new_feature
nothing added to commit
почему моя фиксация не появляется при использовании git status
?
1 ответов
причина в том, что ваша главная ветвь фактически имеет удаленную ветвь, на origin/master, что ваша ветвь была настроена для отслеживания.
это означает, что каждый раз, когда вы делаете коммит в мастер, а затем сделать git status
git сообщит вам, какие коммиты отличаются между вашей локальной ветвью и удаленной ветвью.
при создании новой ветви по умолчанию нет соответствующей удаленной ветви. Вы можете увидеть это делаю git branch -a
. это покажет вам все настроенные удаленные ветви.
Итак, есть две вещи в игре:
1) у вас нет удаленной ветви для вашей локальной ветви 2) ваша ветвь не настроена для отслеживания изменений из удаленной ветви
один простой способ сделать удаленную ветвь и настроить отслеживание для вашей локальной ветви-это нажать локальную ветвь на удаленную ветвь:
git checkout new_feature
git push -u origin new_feature
обычно, когда вы просто давите без -u
переключатель, не будет, но свой ветку все равно будут толкать. Но когда вы проходите в -u
переключатель он скажет git, что вы также хотите установить свою ветку для отслеживания изменений из удаленной ветви.
после того, как вы сделаете это, а затем внесете изменения и зафиксируете их, затем сделайте git status
вы получите ожидаемый результат "ваша ветвь является главой origin / new_feature на 1 commit"