Каждый коммит, включая коммиты слияния, просто хранит полный и полный снимок всех ваших файлов.
Когда вы сотрудничаете с другими людьми, это обычно не стоит много усилия для go возврата и «исправления» предыдущих коммитов. На самом деле это технически невозможно: вы не можете изменить какие-либо существующие коммиты. То, что вы в конечном итоге делаете, - это предоставление новых и улучшенных альтернативных коммитов вместо оригиналов. Например, предположим:
...--I--J
\
M--N--O <-- branch (HEAD)
/
...--K--L
- это текущая ситуация, то есть существующие коммиты до J
и до L
объединены в M
, и вы и они с тех пор построили N
и O
поверх M
. Теперь вы обнаруживаете, что есть «ошибка» в снимке, сохраненном в коммите слияния M
из-за неправильного разрешения конфликтов.
Единственный способ сделать исправленную версию M
- это сделать новый коммит слияния, M'
. (Есть несколько способов сделать это.) Результат:
...--I--J__
| \
| M--N--O <-- branch
\ /
x
/ \
...--K--L---M' <-- newbranch (HEAD)
То есть, плохое слияние M
все еще существует , даже если вы сделали новые и улучшенные объединить M'
в этой новой ветви замены newbranch
. Теперь вам нужно также скопировать N
и O
в новые и улучшенные N'
и O'
:
...--I--J__
| \
| M--N--O <-- branch
\ /
x
/ \
...--K--L---M'-N'-O' <-- newbranch (HEAD)
Теперь вам нужно, чтобы все - вы и все остальные - прекратите использовать старую цепочку M-N-O
, найденную по имени branch
, и начните использовать вместо нее new цепочку M'-N'-O'
. В your Git вы можете стереть имя branch
и переименовать newbranch
в branch
. В их Git им придется делать то же самое. Каждый должен переодеться одновременно. Это, как правило, много работы.
Обычно лучше просто признать, что в прошлом есть ошибка. Сделайте новый коммит поверх O
, который решит проблему:
...--I--J
\
M--N--O--P <-- branch (HEAD)
/
...--K--L
Каждый может получить новый коммит P
как обычно и просто продолжать работать как обычно. Конечно, коммиты M-N-O
имеют плохие снимки ... ну и что? Плохие вещи случаются постоянно; управление версиями - это не предотвращение плохих вещей, а скорее разрешение вам исправить это Вы исправили это.