Почему это слияние не продвигается быстро? - PullRequest
3 голосов
/ 27 мая 2011

Из Git Book:

", если текущая ветвь не отличается от другой - поэтому каждый коммит, присутствующий в текущей ветке, уже содержится в другой - тогда git просто выполняет" быстрый "forward "

Я пытаюсь воспроизвести этот сценарий, но он не дает быстрых форвардов:

$ git init
Initialized empty Git repository in /work/fun/git_experiments/.git/
$ echo initial > readme && git add readme && git commit -a -m Created
[master (root-commit) 74495b9] Created
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 readme
$ git branch b1
$ echo modified > readme && git commit -a -m "Modified"
[master d40d5fb] Modified
 1 files changed, 1 insertions(+), 1 deletions(-)
$ git checkout b1
Switched to branch 'b1'
$ echo modified > readme && git commit -a -m "Modified"
[    b1 46fd337] Modified
 1 files changed, 1 insertions(+), 1 deletions(-)
$ git merge master
Merge made by recursive.
$ 

Ответы [ 3 ]

4 голосов
/ 27 мая 2011

Потому что, хотя содержимое двух коммитов одинаковое, на самом деле они не являются одним и тем же коммитом (Примечание: один - это идентификатор коммита d40d5fb, а другой - 46fd337). Таким образом, ветвь b1 содержит коммит не в master, поэтому не все коммиты в b1 являются потомками master.

0 голосов
/ 27 мая 2011

Мне кажется, я понимаю:

$ git checkout master
Switched to branch 'master'
$ git merge b1
Updating d40d5fb..fd337c3
Fast-forward
$ 

Когда я объединяю изменения с мастером, он быстро пересылается, потому что точно такая же фиксация произошла только на b1 ... в то время как мой пример не был действительното же самое совершает.

0 голосов
/ 27 мая 2011

содержимое коммитов идентично, но сами коммиты - нет.В данном конкретном случае вы сливаете d40d5fb в 46fd337, поэтому необходимо выполнить правильное слияние, связав эти два коммита с одной головкой.Единственный способ для двух человек независимо написать одни и те же коммиты, если имя, адрес электронной почты и отметка времени также идентичны.

Попробуйте вместо этого выполнить перебазирование, что приведет к сжатию коммитов, которые вводят идентичные различия.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...