2011-06-13 3 views
5

Похоже, что я случайно модифицировал мою конфигурацию git таким образом, что, когда я переключаюсь с branchA на master, все изменения автоматически объединяются в master. Это происходит без моей фиксации в branchA или моего слияния с мастером. Раньше, если я пытался переключать ветки после изменения отслеживаемого файла и без фиксации, я получил сообщение «uncommitted changes, not unvers branches», но теперь я не могу вызвать это поведение. Что-то изменилось с моей конфигурацией git, но я понятия не имею, что это может быть. Звучит это знакомо кому-нибудь?Git ветви ведут себя странно

Любая помощь очень ценится.

unbuntu 10,10
мерзавец 1.7.1
github.com

вот мой мерзавец конфигурации -l:

giggle.main-window-maximized=false 
giggle.main-window-geometry=993x731+318+160 
giggle.history-view-vpane-position=223 
giggle.main-window-view=HistoryView 
giggle.file-view-vpane-position=153 
core.repositoryformatversion=0 
core.filemode=true 
core.bare=false 
core.logallrefupdates=true 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
remote.origin.url=************************************** 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 
submodule.config/shared_capistrano.url=******************capistrano.git 
submodule.vendor/plugins/authentication_client.url=********************.git 
branch.dev.remote=origin 
branch.dev.merge=refs/heads/dev 
branch.1.3.9.remote=origin 
branch.1.3.9.merge=refs/heads/1.3.9 
+0

Вы говорите о вашем _uncommitted_ изменения переносятся на главную ветку или что-то еще? – Koterpillar

+0

Вы можете сделать 'git config -l', чтобы перечислить вашу конфигурацию. Отправьте его сюда (исключая все секретное), может быть, кто-то может найти что-то странное. –

+0

Возможный дубликат [Измененные файлы и ветви git] (http://stackoverflow.com/questions/246275/modified-files-and-git-branches) –

ответ

6

При переключении ветви и файлы только локально изменены, Git будет не дать вам предупреждение/сообщение (и объединить изменения в другую ветку). Например, у вас есть ваше репо на master, создайте ветвь temp, у вас есть локальная модификация файла. Теперь, когда вы переключаетесь на master, вы не получите сообщение. Если с другой стороны, вы вносит изменения в temp и зафиксировать их (то есть temp расходится с master) и затем у вас есть локальные изменения, это даст вам это сообщение, когда вы переключаетесь на master

+0

спасибо за ответ. вот мой сценарий более точно: обе ветви существуют удаленно и локально, все файлы уже отслеживаются. я вношу изменения в branchA в отслеживаемый файл, а затем сразу же выдаю «git checkout master» и никаких предупреждающих сообщений, и изменения отражаются в master. Я считаю, что использовал этот сигнал в этом сценарии, но теперь я этого не делаю. – user508546

Смежные вопросы