2017-05-03 4 views
2

병합 된 분기의 분기 정보를 유지하고자하므로 branch.master.mergeoptions=--no-ff을 설정해야합니다. 이렇게하면 병합 커밋은 빨리 감기가 되어도 항상 생성됩니다.git pull --rebase를 사용하는 동안 merge 커밋을 자동으로 유지하는 방법?

그러나 부작용은 git pull (특히 : IntelliJ 또는 Eclipse의 업데이트)을 수행 할 때 병합 커밋이 만들어지는 것입니다. 로그에 Merge remote-tracking branch 'origin/master'이 가득 차지 않도록 branch.master.rebase=true을 설정하면 masterorigin/master으로 빨리 감습니다.

이 설정은 다른 부작용이있다 : I 병합하기 전에, 내 지점 정보가 손실되는 것을 할 것을 잊었다 때문에 그 I git pullmaster과 후 분기를 병합 할 때 : 기능 지점은 master에 평평하게됩니다.

git pull --rebase=preserve 명령이 정확히 필요한 것입니다. master을 리베이스하고 분기 분기를 다시 적용합니다. 그러나 이러한 명령의 대부분은 Eclipse 또는 Intellij에 의해 실행되므로 자동으로 수행해야합니다. 나는 git pull 실제로 git pull --rebase=preserve

그냥 그렇게해야 config setting pull.rebase=preserve있다 수행 싶지만,이 설정을 설정 후에도 나는 현재 자식 2.12 버전을 사용하고있는 동안, git pull, 그냥 git pull --rebase 아니라 예상 git pull --rebase=preserve 할 것입니다. 2는 해당 기능을 포함 할 것으로 예상됩니다.

내 마스터에서 git pull을 수행 할 때 병합 전에 마스터를 업데이트하지 않은 경우에도 내 병합을 유지한다는 것을 어떻게 확인할 수 있습니까?

+0

실제로 당신을 따르지는 않지만, 더 많은 제어 권한이있는 스크립트를 사용하여 명령 줄에서 모든 것을 수행하지 않는 이유는 무엇입니까? –

+0

회사의 모든 사람이 경험이 풍부하지 않으며 명령 행을 사용하는 사람이 놀란다. 그렇기 때문에 기본 Eclipse 또는 IntelliJ 업데이트를 사용하여 이러한 작업을 수행 할 수있는 방법이 필요합니다. 제어가 제한적이거나 제한적입니다. – Auric

답변

2

branch.master.rebase=true 설정은 실제로 pull.rebase=preserve 기본값보다 우선합니다.

솔루션은 구성 설정 해주기 branch.master.rebase=preserve되도록 명령을 git config branch.master.rebase preserve 를 실행하는 것이다. 이것은 수행 할 때 자동으로 병합 커밋을 유지합니다.

+0

답변으로 표시 할 수 있습니다. –

+0

나는 알고 있지만 나는 아직 할 수 없다. 나는 2 일을 기다려야했다. 지금부터 6 시간이다. – Auric