Ответ 1
Это поведение по умолчанию git.
Вы можете использовать флаг -f для проверки, чтобы сделать "чистую проверку", если хотите.
Я работаю над репозиторием git с главной ветвью и другой ветвью темы. Я переключился на ветку темы и изменил файл. Теперь, если я переключился на главную ветку, тот же файл будет показан как измененный.
Например:
git статус в ветке git -build:
# On branch git-build
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: cvsup_current
#
Переключиться на ведущую ветвь
[[email protected] builder_scripts (git-build)]# git co master
M builder_scripts/cvsup_current
Switched to branch "master"
git статус в главной ветке
[[email protected] builder_scripts (master)]# git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: cvsup_current
#
Почему файл отображается как измененный в главной ветке, хотя он был изменен в ветке git -build?
Я понял, что ветки независимы друг от друга, и когда я перехожу от одной ветки к другой, изменения не "перетекают" из одной ветки в другую. Поэтому я, очевидно, пропустил кое-что здесь.
Кто-нибудь получил подсказку?
Это поведение по умолчанию git.
Вы можете использовать флаг -f для проверки, чтобы сделать "чистую проверку", если хотите.
Почему файл отображается как измененный в главной ветке, хотя он был изменен в ветке git -build?
Ключом к запоминанию является то, что файл был не изменен в ветки git -build. Он был изменен только в вашей рабочей копии.
Только когда вы фиксируете изменения, возвращаемые в какую-либо ветвь, вы проверили
Если вы хотите временно сохранить свои изменения в одной ветке, пока вы идете на другую работу, вы можете использовать команду git stash
. Это один из удивительных маленьких невоспетых при использовании git. Пример рабочего процесса:
git stash #work saved
git checkout master
#edit files
git commit
git checkout git-build
git stash apply #restore earlier work
git stash
хранит стек изменений, поэтому вы можете безопасно хранить несколько контрольных точек. Вы также можете дать им имена/описания. Полная информация об использовании здесь.
Измененные файлы не помещаются в репозиторий, пока вы не добавите и не зафиксируете их. Если вы вернетесь к ветки вашего раздела и зафиксируете файл, то он не появится на главной ветке.
Вы можете сделать следующее, чтобы преодолеть эту проблему.
-f
, чтобы игнорировать изменения.Если вы хотите сохранить изменения:
git stash
, переключите ветвь, выполните свою работу, вернитесь к
исходная ветвь и git stash apply
.