Как реализовать линейный поток Git?

Как реализовать линейный поток Git?

В моем dev-центре предпочтительнее следующий git-поток:

  1. Проверьте ветку проблемы ( issue9).
  2. Решить проблему ( serve over port 80).
  3. Совершить ( git commit...).
  4. Объедините ветку проблем с локальной веткой функций ( cal).
  5. Перенесите локальную ветку функций в origin.

    • Все слияния должны быть ускорены, если это вообще возможно.

Последнее ограничение заставляет меня рвать на себе волосы — на практике я могу либо:

  1. Объедините исправленную версию проблемы в локальную ветку функций.
  2. После этого git отказывается отправлять данные в origin из-за удаленных изменений.
  3. Перенесите удаленные изменения в локальную ветку функций.
  4. Git автоматически генерирует отдельный коммит слияния.

ИЛИ

  1. Перенесите удаленные изменения в локальную ветку функций.
  2. 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

Связанный контент