2014-01-19 1 views
2

편집 커밋에 문제가 있습니다.편집은 git rebase로 커밋합니다.

2 개의 파일이 2 개의 커밋을 가지고 있습니다. 내 목표는 둘 다 편집하는 것입니다. 나는 약 rebase -i 읽고 이것은 내가 할 예정이다라고 생각 것입니다 :

  • 먼저 내가 pickedit로 변경;
  • 저장 및 종료;
  • rebase stops;
  • 유형 git commit --amend;
  • 텍스트 편집기를 변경하고 저장하고 닫습니다.
  • 유형 git rebase --continue입니다.

이 후 나는 rebase가 다시 멈추고 두 번째 커밋을 다시해야한다고 생각합니다.

하지만 지금 내가 git rebase --continue을 입력 한 후

난이 얻을 :

file1.php: needs update 
You must edit all merge conflicts and then 
mark them as resolved using git add 

무엇이 문제이고 어떻게해야합니까?

+0

예, 전체 기록에서 유일한 두 가지 커밋입니다. 두 번째 질문에 대해서는 파일을 열 때 '파일이 디스크에서 변경되었습니다. 파일을 다시로드 하시겠습니까? ' 그렇게해야합니까? – EmptyClip

+0

두 커밋을 하나로 스쿼시하여 편집 할 수 있습니까? – Agis

+0

아니요 두 파일을 모두 변경해야합니다. – EmptyClip

답변

4

당신은 당신이 가지고있는 REBASE에 대한 중지 할 때 :

  • 편집 파일 (들)
  • 인덱스를 변경 추가 - git add changedFile
  • 변경 수정 - git commit --amend
  • 이 리베이스를 계속 - git rebase --continue

설명에서 잊어 버린 것일 수 있습니다. 색인에 변경 사항을 추가하십시오. 이 경우 git commit --amend은 아무 것도하지 않습니다 (수정 사항은 변경되지 않습니다). 또한 파일을 편집하기 전에 git commit --amend이 있습니다 (파일에서 이미 수행 한 변경 사항을 수정해야합니다).

내가 지정한 순서대로 단계를 적용 해보십시오.

+0

나는 그것을 시험해 보았다. 나는 파일을 변경하고, 'git add'를했고, '--amend'와 '--continue'를 수행했다. 그럼 난이 오류가있어 : 21e61c9 ... 두 번째 커밋을 적용 할 수 없습니다. 그러면 Git이 --continue, --skip 및 --abort 명령을 참조합니다. – EmptyClip

+0

변경 내용이 다음 커밋의 원래 변경 내용과 충돌 할 경우 해당 오류가 발생할 것으로 예상됩니다. 어떻게 보이는지 보려면'git status'를 호출하십시오. '모두 수정 된 '행에주의를 기울이십시오. –

+0

# HEAD를 7deb658에서 분리했습니다. # 현재 '7deb658'에 'master'지점을 리베이스하고 있습니다. # (충돌을 수정 한 후 "git rebase --continue"를 실행하십시오) # (이 패치를 건너 뛰려면 "git rebase --skip"을 사용하십시오.) # (원래 분기를 체크하기 위해 "git rebase --abort"를 사용하십시오) # # 병합 취소 경로 : # (사용 "자식 재설정 HEAD ..."unstage하는) # (사용 해상도 표시하기 위해 "자식이 ... 을 추가") # # \t 모두 수정 : 쇼 - 디렉토리 -content.php – EmptyClip

1

(OP 대신 게시 솔루션). 이것이 그들의 자식 경험을 시작 적어도 한 사람을 도움이

git rebase -i --root (I wasn't able to find both commits using HEAD~2) 
pick->edit for both commits 
Ctrl+X and Y and ENTER 
edit the first commit 
git add file1.php 
git commit --amend 
git rebase --continue 
edit the second commit 
git add file2.php 
git commit --amend 
git rebase --continue 
git push -f 

희망 :

은 내가 할 수있는 올바른 방법을 얻었다. 스팍, 너 큰 도움이되었다. 감사.