2014-09-30 8 views
3

Я переустанавливаю другую ветку на мою ветку checkout, и я получаю конфликт во время rebase. Я разрешил конфликт слияния.Требуется фиксация после разрешения конфликта слияния во время перезагрузки Git?

$ git status 
rebase in progress; onto 77c951b 
You are currently rebasing branch 'test' on '77c951b'. 
    (all conflicts fixed: run "git rebase --continue") 

Changes to be committed: 
    (use "git reset HEAD <file>..." to unstage) 

     modified: br_boss_buha_faktura/forms/br_boss_buha_faktura_head_dtl.frm 
     modified: br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val 
     new file: br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client_name.val 

Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

     modified: br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val 

мне нужно совершить над разрешенным слияния конфликта git commit или я могу сразу пойти дальше, используя git rebase --continue ли?

ответ

0

Выполнение git rebase --continue перепишет текущую фиксацию, которую вы применяете, к форме, в которую вы ее изменили. Он зафиксирует изменения под тем же именем, что и в ветке test.

Обратите внимание, что вы переустанавливаете фиксацию, возможно, это отдельное состояние HEAD! Обычно, одна перебазируется на master или staging.

+0

Так что мне не нужно использовать 'git commit'? Я исправлю это, а потом просто использую 'git rebase -continue'? Что вы имеете в виду «Обычно, одна перестановка на хозяине или промежуточная ветка»? Я на ветке 'test' и выполнил функцию git rebaseA' на' test'branch. –

+0

Да, как [документация говорит вам] (http://git-scm.com/docs/git-rebase). Кроме того, как сказал @pala, у вас есть один файл, который не поставлен для фиксации. Это намерение или оно должно быть частью текущей фиксации бонуса? – rubenvb

+0

Да, я понял, что мне нужно добавить файл 'git add br_boss_buha_faktura_clientists/br_boss_buha_faktura_client.val', потому что' git rebase -continue' не работает, и я получаю сообщение 'Вы должны редактировать все конфликты слияния и затем отметьте их как разрешенные с помощью git add'. –

4

Здесь я вижу

Changes not staged for commit: 
    (use "git add <file>..." to update what will be committed) 
    (use "git checkout -- <file>..." to discard changes in working directory) 

     modified: br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val 

Пожалуйста

git add br_boss_buha_faktura/valuelists/br_boss_buha_faktura_client.val 

Тогда

git rebase --continue 
+1

После 'git add',' git commit -a' действительно нужен? –

+0

Да, пожалуйста, сделайте git commit -a – Gopi

+0

Не могли бы вы объяснить, почему мне нужно совершить фиксацию, потому что я нашел здесь [нить, которая объясняет обратное] (http://stackoverflow.com/a/3611293/183704) ? –

0

Некоторые хорошие ответы здесь, но ответить на этот вопрос. NO вам не нужно необходимо выполнить после разрешения конфликта слияния.

После того, как вы добавили разрешение в промежуточной области мерзавца через git add <file>git rebase --continue будет сделать коммит для вас, используя оригинальное сообщение фиксации.

ПРИМЕЧАНИЕ хеш фиксации изменится! Поэтому, когда вы идете объединить это в другую ветку, которая совершает то, что вы изменили в своем филиале, у вас будут проблемы с объединением этих ветвей.


Примечание Я сказал, что вы не нужно к git commit после разрешения конфликта в git rebase, но вы можете , если вы хотите.

Может быть полезно разделить файлы с одного фиксатора на ряд отдельных коммитов, если это имеет смысл. Обычно вы просто хотите разрешить конфликт. Как показано здесь: Break a previous commit into multiple commits.

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