2012-12-11 4 views
0

나는 꽤 활동적인 프로젝트에서 일하고있다. 새 기능을 구현하려면 새 분기 ("my-feature")를 만드십시오. 마스터에서 무슨 일이 일어나고 있는지 계속 추적하려면 다음 단계를 따라야합니다.git rebase, 내가 뭔가 잘못하고있는 것 같아.

git checkout master 
git pull 
git checkout my-feature 
git rebase master 

처음에는 아주 잘 돌아갔습니다. 그러나 몇 일 이후처럼 많은 오류에 가야 : 나는 내 자신에 의해 코드를 통해 갈 필요가보다


stdin:28: trailing whitespace. 

stdin:80: trailing whitespace. 

stdin:83: trailing whitespace. 

warning: 3 lines add whitespace errors. 

. 충돌은 항상 "my-feature"브랜치와 나중 버전의 동일 라인에서 저의 오래된 변경 사항입니다. rebase가 커밋의 순서를 혼란스럽게하는 것처럼 보입니다. 모르겠습니다.

수정 한 후 고정 된 것으로 표시하고 (git add) git rebase --continue으로 전화하면 다시 비슷한 오류가 발생합니다. 리베이스 프로세스가 완료 될 때까지이 단계를 여러 번 반복해야합니다.

마스터에서 "내 기능"분기에서 편집 한 파일을 변경하지 않았습니다. 그래서 나는 rebase가 어떤 갈등없이 통과해야한다고 생각할 것입니다. 다른 모든 변경 사항을 가져오고 변경 사항을 올바른 순서로 적용하십시오.

내가 여기서 잘못하고있는 것은 무엇입니까?

감사합니다.

+0

을 동일한 충돌을 반복해서 해결하는 데 지쳐 있다면 rerere를 활성화 할 수 있습니다. 'git config --global rerere.enabled true' –

답변

3

충돌과 같은 소리는 아니지만 공백 오류를 감지하는 커밋 훅을 추가 한 것 같습니다.

리베이스 할 때 기능 분기 커밋은 하나씩 재생됩니다. 따라서 공백 문자를 수정했다는 사실은 이전 커밋을 재생하는 동안 불평하는 것을 멈추지 않습니다.

rebase를 사용하여 커밋을 스쿼시하면 기록에 나쁜 커밋이 없거나 리베이스를 중지 할 수 있습니다. master -> my-feature을 병합하여 지회를 최신 상태로 유지 한 다음 완료 한 후에 만 ​​병합 할 수 있습니다.

+0

Commit hook? 그는 국부적으로 rebases. –

+0

예, 리베이스가 로컬 커밋을 생성 중입니다. _push_ 후크를 말하지 않았습니다. – Useless

+0

대부분 클라이언트 쪽에서 미리 커밋 된 후크입니다. OP는'.git/hooks/*'를 조사하여 오류가 어디서 발생하는지 확인할 수 있습니다. – Useless

1

가끔 git이 공백을 경고합니다. 파일에 공백이 중요하지 않은 경우이 구성이 경고를 건너 뛸 수 있습니다 :

git config --global apply.whitespace nowarn 

당신이 REBASE하는 동안 당신이 옵션을 사용할 수 있습니다 당신의 자식 구성을 변경하지 않으려면 :

git rebase --ignore-whitespace 
관련 문제