선형 자식 흐름을 수행하는 방법은 무엇입니까?

선형 자식 흐름을 수행하는 방법은 무엇입니까?

내 개발실에는 다음과 같이 선호하는 Git 흐름이 있습니다.

  1. 이슈 브랜치( issue9)를 체크아웃하세요.
  2. 문제( serve over port 80)를 해결하세요.
  3. 저지르다 ( git commit...).
  4. 이슈 분기를 로컬 기능 분기( cal)에 병합합니다.
  5. 로컬 기능 분기를 origin.

    • 가능하다면 모든 병합은 빨리 감기되어야 합니다.

이 마지막 제약으로 인해 머리카락이 찢어졌습니다. 실제로는 다음 중 하나를 수행할 수 있습니다.

  1. 이슈 커밋을 로컬 기능 분기에 병합합니다.
  2. 그러면 git은 원격 변경으로 인해 원본으로 푸시를 거부합니다.
  3. 원격 변경 사항을 로컬 기능 분기로 가져옵니다.
  4. Git은 자동으로 별도의 병합 커밋을 생성합니다.

또는

  1. 원격 변경 사항을 로컬 기능 분기로 가져옵니다.
  2. Git은 자동으로 별도의 병합 커밋을 생성합니다.

이 동작을 달성하기 위해 전역/로컬 git 구성에서 조정할 수 있는 설정이 있습니까? 이 작업을 시도하면 결국 git이 엉망이 되고 정리하기 위해 5개의 git 명령 중 4개를 실행해야 합니다.

난 그냥 그러고 싶어 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

관련 정보