
В моем dev-центре предпочтительнее следующий git-поток:
- Проверьте ветку проблемы (
issue9
). - Решить проблему (
serve over port 80
). - Совершить (
git commit
...). - Объедините ветку проблем с локальной веткой функций (
cal
). Перенесите локальную ветку функций в
origin
.- Все слияния должны быть ускорены, если это вообще возможно.
Последнее ограничение заставляет меня рвать на себе волосы — на практике я могу либо:
- Объедините исправленную версию проблемы в локальную ветку функций.
- После этого git отказывается отправлять данные в origin из-за удаленных изменений.
- Перенесите удаленные изменения в локальную ветку функций.
- Git автоматически генерирует отдельный коммит слияния.
ИЛИ
- Перенесите удаленные изменения в локальную ветку функций.
- Git автоматически генерирует отдельный коммит слияния.
Есть ли настройка, которую я могу настроить в глобальной/локальной конфигурации git, чтобы добиться такого поведения? Когда я пытаюсь это сделать, я в конечном итоге портю git и мне приходится запускать четыре из пяти команд git, чтобы его очистить.
Я просто хочу emacs && git commit && git checkout cal && git merge issue9 && git push origin cal
, понимаешь?
решение1
Для одноразовых вытягиваний вы можете использовать git pull --rebase
:
$ git commit
$ git checkout cal
$ git merge issue9
$ git pull --rebase
$ git push origin cal
Чтобы настроить git так, чтобы он всегда вел себя таким образом git pull
, сделайте так, чтобы ваш код ~/.gitconfig
выглядел следующим образом:
[push]
default = matching
[branch]
autosetuprebase = always
[color]
status = auto
[merge]
ff = true