Ответ 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"