git remote merge commit вызывает ложные зависимости в gerrit - PullRequest
0 голосов
/ 10 сентября 2011

Я работаю с удаленной веткой в ​​git. Перед выполнением какой-либо работы я делаю git pull, чтобы получить ToT. Когда я просматриваю журнал git, я вижу, что это автоматически создает коммит слияния с сообщением: «Слияние ветки 'master' из ssh: // myserver: 1111 / mybranch". Затем я делаю свою работу и совершаю изменения. После этого я делаю изменения. Наша система настроена с Gerrit для обзора кода. Мое новое изменение проявляется в зависимости от фиксации слияния. Как мне от этого избавиться?

Ответы [ 2 ]

1 голос
/ 12 ноября 2013

git pull на самом деле git fetch и git merge, если локальное отделение отслеживает удаленно.Так что, если удаленная ветвь не является быстрой пересылкой, то git pull создаст коммит слияния.Чтобы избежать фиксации слияния, используйте

'git fetch'
'git rebase -p'
'git pull --rebase' 

или установите merge.ff со значением only в конфигурации git.

Или

отключить настройки удаленного слежения из местного филиала git config --unset branch.<branch>.merge

1 голос
/ 10 сентября 2011

Вероятно, слияние не было быстрой перемоткой вперед, потому что ваша ветвь отличалась от удаленной перед вытягиванием.Итак, когда вы выдвинули свое изменение, оно, вероятно, создало несколько изменений для версии в Gerrit, верно?

Лучший подход в работе с Gerrit - это выполнить чистую проверку удаленной ветви перед передачей и отправкойлюбое новое изменение, в этом случае ваше изменение не будет иметь никаких зависимостей.Я обычно извлекаю новую ветвь для каждой новой функции или исправления, которые мне нужно нажать и удерживать до тех пор, пока они не будут проверены и объединены с мастер-репо в Gerrit (на тот случай, если потребуется изменить что-либо в результате пересмотра и создать новый набор патчей).для одного и того же изменения).

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

...