2014-01-29 3 views
1

При объединении ветки A в ветку B Git сообщил о нескольких конфликтах. Я хочу разрешить конфликты, сохраняя версию ветви А каждого файла. Я не забочусь о содержании в ветке B.Разрешить конфликт с Git слиянием, используя все мои изменения, отбросив их

Есть ли команда, которую я могу использовать для разрешения всех конфликтов слияния, сохраняя мою версию файла (версия в ветке A)?

ответ

3

Фактически, используя терминологию Git, вы хотите отбросить «наши» и сохранить «их». Это потому, что вы находитесь на ветке B, когда вы делаете слияние, что делает это «нашим».

git checkout B 
git merge -s recursive -X theirs A 

Из документации:

The recursive strategy can take the following options: 

ours 
    This option forces conflicting hunks to be auto-resolved 
    cleanly by favoring our version. Changes from the other tree 
    that do not conflict with our side are reflected to the merge 
    result. For a binary file, the entire contents are taken from 
    our side. 

    This should not be confused with the ours merge strategy, which 
    does not even look at what the other tree contains at all. It 
    discards everything the other tree did, declaring our history 
    contains all that happened in it. 

theirs 
    This is the opposite of ours. 
+0

Я задаюсь вопросом, почему документы относятся к нему является «ломоть» это просто опечатка в оригинале документы, где они хотели написать «кусок»? –

+1

@PhilipKirkbride, я мог только размышлять о том, почему этот термин был выбран. Но это не опечатка: [hunks указаны во всем исходном коде Git] (https://github.com/git/git/search?utf8=%E2%9C%93&q=hunk) и [documentation] (https: // git-scm.com/docs/git-add). – Chris

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