2014-04-09 3 views
0

에 내가 자식 내 오래된 커밋으로 되돌아가는 습관을 가지고 있고 나는 는 자식

A<-B<-C<-D<-E<-F 

에서이 BI는 텍스트 파일을 추가 커밋 커밋

의 시리즈를 가지고 directory.For 예를 들어 작업 내 수정 커밋합니다. 이제 커밋에 텍스트 파일을 추가하고 거기에 기록하고 싶습니다.

나는 git rebase와 git reset --soft가 여기에 사용되어야한다고 들었지만 실제로 사용하는 방법을 이해하지 못했다. 나는

git rebase HEAD^5 

답변

3

당신이이 해시를 커밋

pick 362trhy4 
pick ewq3w5y4 
pick 34642wfg 
pick 34265wey 
pick 34652366 

rebase blabla onto blabla 

주처럼 보일 라인의 부부와 함께 창이 열립니다

git rebase -i HEAD~5 

를 사용할 수있는 다음과 같은 명령을 사용해야 그냥 구성됩니다. 수행하려는 작업은 편집 할 커밋 행에 들어가서 pickedit으로 변경하십시오. 그런 다음 편집기 (nano, vim 등)를 종료하고 확인하십시오.

편집하려는 커밋으로 '되돌아갑니다'. 이제 자유롭게 변경할 수 있습니다. 작업이 완료되면, git add 또는 git rm 변경된 파일은 (당신이 커밋 변경하려는 때문에)이 커밋 해시를 변경됩니다

git commit --amend -m "new commit message" 

주를 수정 커밋합니다. 그런 다음

git rebase --continue` 

이렇게하면 rebase 프로세스가 계속됩니다. 다른 모든 커밋은 단지 pick s이므로, git은 편집 된 커밋에 다시 적용하려고 시도합니다.

충돌이 발생하지 않는 경우 : 훌륭합니다. 이제 완료되었습니다.

만약 그렇다면 : 어떤 방식 으로든 충돌을 해결하고 git add 또는 git rm으로 해결 된 충돌을 표시하십시오. 그런 다음 다시 git rebase --continue. 모든 충돌이 해결 될 때까지이 단계를 반복하십시오. 이제 시작한 곳으로 돌아 가야하지만 변경된 기록이 있어야합니다.