Почему "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"