Запретить 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 по умолчанию для всех моих репозиториев?