# 1 звучит нормально - во-первых, это коммит из ветки, которую вы вытащили, во-вторых, это коммит слияния (который фактически объединяет ветви). Фиксация слияния выполняется тем, кто делает git pull
, но если вы посмотрите на файлы в git blame
, вы увидите, что все строки обвинений относятся к первоначальному автору (коммиты слияния фактически не добавляют строки обвинений, если вы разрешать конфликты).
# 3 также кажется нормальным по той же причине - слияние добавляет один коммит, который фактически объединяет ветви.
Я полагаю, что с помощью # 2 запрос на получение данных там на самом деле был ускоренной перемоткой вперед, и, следовательно, фиксация слияния не требовалась, тогда как # 1 и # 3 не были перемотаны вперед (даже если слились без конфликтов, они не были прямыми потомками вашего HEAD
).
По сути, я думаю, что вы на самом деле все делаете правильно, даже если это кажется немного странным. :)
Если вы хотите более подробное объяснение различий между ускоренной перемоткой вперед и слиянием, вот несколько слов:
о слияниях и "быстрой перемотке вперед"
Вы заметите, что мы видели фразу «перемотка вперед» несколько раз. Это особая операция, выполняемая «git merge», где ветвь может продвигаться по линейной последовательности. Это происходит всякий раз, когда вы извлекаете изменения, которые строятся прямо на том же коммите, что и у самого последнего. Другими словами, никогда не было дивергенций или одновременных коммитов, созданных параллельно в нескольких репозиториях. Если бы были параллельные коммиты, то «git merge» фактически ввел бы новый коммит слияния, чтобы связать два коммита вместе.
Когда происходит слияние без ускоренной перемотки вперед, всегда существует вероятность возникновения конфликта. В этом случае «git merge» оставит маркеры конфликта в файлах и даст вам указание разрешить конфликты. Когда вы закончите, вы создадите git commit -a, чтобы создать коммит слияния.
(с http://cworth.org/hgbook-git/tour/)
Редактировать
Я пошел и посмотрел на настоящий репозиторий на Github. Последние два извлечения (# 2 и # 3), кажется, работали должным образом и сделали то, что должны были быть сделаны - быстрая перемотка вперед в случае # 2 и слияние (с добавленной фиксацией слияния) в # 3.
Я не совсем уверен, что случилось с # 1 - как-то, кажется, часть изменений была помещена вами в отдельный коммит? Не мог бы сказать лучше, не имея возможности посмотреть, что на самом деле было сделано в то время. Возможно, вы зафиксировали изменения и зафиксировали их, не заметив?