бросит оба. Похоже, что чаще люди бросают только один, хотя, из-за конфликтов слияния, так что это, вероятно, поймает некоторые, возможно, даже многие / большинство случаев.
пользуем git для контроля версий.
Если я взгляну на конкретную историю файлов (используяgit log --pretty=format:"%h %ad" --date=short <filename>
) Я вижу что-то вроде этого:
HashOfCommitA 2018-01-15
HashOfCommitB 2018-01-09
HashOfCommitC 2018-01-05
<older commits>
CommitA и CommitB являются коммитами слияния.
В изменениях CommitB (git diff HashOfCommitB <filename>
) в файл добавлены две новые строки. На изменения в CommitA эти строки не влияют, но если я проверю содержимое файла после слияния CommitA, то две новые строки, добавленные в CommitB, будут отсутствовать.
По сути, когда я просматриваю историю файлов, в какой-то момент я вижу, что что-то добавлено, но после следующей фиксации оно отсутствует, и я не вижу удаления этих строк в изменениях фиксации.
Может ли это быть потому, что слияние было сделано с более старой версией ветки (без CommitB)? Как я могу найти, где были удалены эти строки?
Другими словами, как это возможно? Есть ли хорошие способы предотвратить такую ситуацию в будущем?