2017-11-27 4 views
-1

푸시되지 않은 커밋 메시지를 변경하고 싶습니다. 따라서이 명령을 사용하고 있습니다.힘내 - 이전 커밋 메시지를 변경하려고하면 커밋이 잘못됩니다.

git rebase -i "commitId". 

그러나이 명령을 실행하면 편집하려는 커밋 메시지가 나타나지 않습니다. 아마도 내 다른 커밋의 메시지를 보여줍니다. 뭔가 잘못되어 올바른 커밋과의 일치가 더 이상 작동하지 않습니까? 예 :

이 cad487486b6465dff38b25392673ba23024fe615 (HEAD -> 마스터) 커밋 저자 : 카안 Cayoglu 날짜 : 월 11월 27일 13시 4분 44초 2017 0100

LPM-406 - Send encryption certificates to stand-in 

788ae89a51779a07be3b3266a22cef750298bcea 저자 커밋 : 카안 카요 글루 날짜 : Mon 11 월 27 13:03:34 2017 +0100

LPM-405 - Renewal of softtoken 
날짜 카안 Cayoglu : 2017 0100

LPM-396 Replace softtoken process 

월 11월 27일 12시 56분 47초이 그래서 내가 8bca40e4c9b933e7bcc9b430d72d97fb309eeba5의 메시지를 편집 할 가정 해 봅시다

8bca40e4c9b933e7bcc9b430d72d97fb309eeba5 저자을 커밋합니다. git rebase -i "8bca40e4c9b933e7bcc9b430d72d97fb309eeba5"명령을 사용하고 있습니다. vi 편집기가 열리지 만 다른 두 커밋의 메시지가 표시되지만보고 싶은 커밋은 표시되지 않습니다. 어떤 아이디어 ..?

답변

1

당신이 사용하는 명령은이 메시지를 변경하는 데 사용할 수있는 대화 형 리베이스 git rebase -i,하지만 당신은 단지 마지막의 메시지를 변경하려는 경우가해야 할 쉽게 커밋 :

git commit --amend -m "New message" 

참고이 있음 커밋 날짜와 메시지, 따라서 커밋의 SHA-256 키를 변경할 것이므로 커밋 된 커밋에서이 작업을 수행하는 것은 좋지 않습니다.

+0

나는 본다. 그러나 나는 어떻게해서든지 나의 마지막 커밋을 바꾸고 싶지 않았다. –

3

rebase에 대한 인수가 새로운 기본 확약이므로 commitId^을 인수로 원합니다. ^은 지정된 커밋의 부모를 나타냅니다.

+0

전설 ... 도움을 주셔서 감사합니다! –

+0

정확하지는 않습니다. 인수는 "업스트림"이며, rebase가 처리 할 커밋을 찾는 위치를 정의합니다. 기본적으로 * 커밋이 다시 쓰여지는 새로운 기본 역할을하지만 * --onto를 참조하십시오. 그래서 조언은 괜찮습니다. 이것은 합병을 거치면 엉망이 될 수 있고'commitId'는 부모가 없기 때문에'commitId ^'는 유효하지 않습니다 ('commitId ^'를' - 루트'). –

관련 문제