2014-01-24 2 views
2

커밋 로그를 편집하는 쉬운 방법이 있습니까? (빨간색 화살표가 가리키는 로그와 같이)서버에 푸시하기 전에 매우 오래 전에 커밋 로그를 편집하는 방법

예인 경우 명령 행 또는 gittower에서 수행하는 방법은?

감사합니다. enter image description here

+0

변경하면 커밋 이후 전체 히스토리가 엉망이되어 이미 사용자를 제외한 저장소의 복제본을 가지고있는 모든 사용자에게 고통을줍니다. –

+0

로그가 서버로 전송되지 않으면 어떻게됩니까? – newBike

+1

[Git에서 잘못된 커밋 메시지를 편집하려면 어떻게합니까?] (http://stackoverflow.com/questions/179123/how-do-i-edit-an-incorrect-commit-message-in-git) – krlmlr

답변

1

아니, 그것을 할 수있는 쉬운 방법이없는 는 (방법이 아니라는 것을 의미하지 않는다, 그러나 그것은 모든 단일 위반 후 커밋를 저지 을 변경 회전).

힘내 기는 원래 역사를 바꿀 수 없도록 고안되었습니다. 다음에 커밋 설명 규칙을보다 잘 적용하십시오. (후크를 사용하여 기본 점검을 수행 할 수 있습니다). 서버에 푸시하지 않은만큼 긴

2

, 당신은 사용할 수 있습니다

git rebase -i f88232a^ 

이 대화식으로 모든 f88232a에서 시작 커밋 리베이스됩니다. ^은 rebase 작업의 루트로 f88232a 이전에 커밋을 사용하도록 git에 지시합니다.

pick f88232a Update 
pick 57bfaca Change, redirect to index after finishing create 
pick d23c917 Add missing column: result 
... 

변경 e 또는 edit에 대한 첫 번째 pick :이 명령을 실행하면, 당신은 같은 것을 볼 것입니다. 이제 다음

git rebase --continue 

짜잔을 실행

Stopped at f88232a... Update 
You can amend the commit now, with 

    git commit --amend 

Once you are satisfied with your changes, run 

    git rebase --continue 

지금

git commit --amend 

저장 메시지 & 커밋 변경하여 실행 보자! 기록을 f88232a로 다시 쓰는 중입니다. f88232a에서 현재까지 모든 커밋은 새로운 SHA와 함께 새로운 커밋으로 대체됩니다. 어떤 브랜치가 있다면, 오래된 커밋에 기반하여 머물러 있기 때문에, 이것은 추한 속도로 빠져 나올 것입니다. 하지만 그 트릭을해야합니다.