Ответ 1
вы можете разделить pull
на fetch
и rebase
git fetch origin master
git rebase origin master --preserve-merges
git pull --rebase
удаляет нечеткие комманды слияния. Есть ли способ защитить их?
Скажите, как выглядит моя история -
A
| \
B H
| |
C G
| |
D F
| /
E
(A
является фиксацией слияния.)
После a git pull --rebase
он становится -
H
|
G
|
F
|
X
|
B
|
C
|
D
|
E
(X
- это новые коммиты git pull --rebase
, вставленные в мою историю.) - A
удаляется.
Я знаю, что вы можете использовать git rebase --preserve-merges
для сохранения их с помощью git rebase
, но я не вижу способа сохранить их с помощью git pull --rebase
.
вы можете разделить pull
на fetch
и rebase
git fetch origin master
git rebase origin master --preserve-merges
Или (для предстоящего git 1.8.5 Q4 2013, теперь поставляемого в git 1.8.5, 2013-11-27):
"
git pull --rebase
" всегда предпочитал выполнять стандартную фальсификацию выравнивания болота.
Вы можете сказать ему, чтобы он запускал "rebase --preserve-merges
", установив для параметра "pull.rebase
" значение "preserve
".
Итак, достаточно простой конфигурации, чтобы убедиться, что ваш pull --rebase
сохраняет слияние:
git config pull.rebase preserve
Подробнее см. 66713ef3 (спасибо Стивен Хаберман):
Если пользователь работает над мастером и слился в своей ветки функции, но теперь он должен "
git pull
", потому что мастер перемещен, аpull.rebase
их ветвь функции будет сплющена в master.Это связано с тем, что "
git pull
" в настоящее время не знает о флаге сброса сохранения rebase, что позволит избежать этого поведения, поскольку вместо этого будет воспроизводиться только комманда слияния ветки функции на новом хозяине и не воспроизводить каждый отдельный commit в ветки признака.Добавьте опцию
--rebase=preserve
, которая пройдет по--preserve-merges
для rebase.Также добавьте '
preserve
' к допустимым значениям для параметра конфигурацииpull.rebase
.
Просто:
git pull --rebase=preserve
От документы:
При установке для сохранения rebase с параметром
--preserve-merges
, переданным вgit rebase
, чтобы локально созданные коммиты слияния не были сплющены.