![선형 자식 흐름을 수행하는 방법은 무엇입니까?](https://rvso.com/image/1414669/%EC%84%A0%ED%98%95%20%EC%9E%90%EC%8B%9D%20%ED%9D%90%EB%A6%84%EC%9D%84%20%EC%88%98%ED%96%89%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
내 개발실에는 다음과 같이 선호하는 Git 흐름이 있습니다.
- 이슈 브랜치(
issue9
)를 체크아웃하세요. - 문제(
serve over port 80
)를 해결하세요. - 저지르다 (
git commit
...). - 이슈 분기를 로컬 기능 분기(
cal
)에 병합합니다. 로컬 기능 분기를
origin
.- 가능하다면 모든 병합은 빨리 감기되어야 합니다.
이 마지막 제약으로 인해 머리카락이 찢어졌습니다. 실제로는 다음 중 하나를 수행할 수 있습니다.
- 이슈 커밋을 로컬 기능 분기에 병합합니다.
- 그러면 git은 원격 변경으로 인해 원본으로 푸시를 거부합니다.
- 원격 변경 사항을 로컬 기능 분기로 가져옵니다.
- Git은 자동으로 별도의 병합 커밋을 생성합니다.
또는
- 원격 변경 사항을 로컬 기능 분기로 가져옵니다.
- 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