Запретить git записывать пустые коммиты слияния
привыкший к SVN, я всегда делаю "обновление" перед обменом любыми изменениями, поэтому, прежде чем делать какие-либо толчки, я всегда тяну первым.
это раздражает, когда я вытаскиваю (даже если не было никаких изменений на пульте) и вижу фиксацию для слияния с 0 changed files with 0 additions and 0 deletions
. Commits like:
https://github.com/UCF/Harvard-Mobile-Web/commit/be9d6b2d1ab196554e080d8b8647a9d16c8a5ddf
Я считаю, что это бесполезный шум при взгляде на совершение история.
может быть, есть что-то, что я упускаю, есть ли смысл в этой фиксации? Если нет, есть ли способ предотвратить git от написания пустых коммитов слияния?
2 ответов
определение git pull
по существу " выборка и слияние с новой удаленной головкой для моей текущей ветви."Если вы хотите перебазировать вместо этого, просто git pull --rebase
. Это изменяет pull, чтобы перебазировать ваши коммиты поверх новой удаленной головки.
лично мне нравится git fetch
(загрузите новые объекты с удаленного, но не обновляйте локальные ветви) и проверьте ситуацию, а затем решите сами, объединять или перебазировать.
есть несколько вариантов, все сводится к одному и тому же: создание git
использовать --rebase
опция (как упоминалось @cdhowie).
вы, вероятно, обнаружите, что вы предпочитаете один из этих:
Вариант 1: явно использовать git pull --rebase
каждый раз.
Вариант 2: для каждого проекта, модифицировать добавлять
[branch "master"]
remote = origin
merge = refs/heads/master
rebase = true
3: в вашем личном ~/.gitconfig
[branch]
autosetuprebase = always
лично мне нравится вариант 3, так как он позволяет мне ничего не навязывать другим разработчикам, при этом все еще не нужно вводить --rebase
каждый раз.
см. Также как сделать git pull использовать rebase по умолчанию для всех моих репозиториев?