2012-07-09 6 views
1

어제 "나쁜 커밋"을했습니다 (IDE에서 탭을 공백으로 변환하고 LF를 CRLF로 변환했습니다). 그런 나쁜 커밋을 되돌리고 싶습니다. 커밋의 영향을받은 파일이 이전 커밋으로 되 돌리는 것을 원하지 않습니다.git commit을 제거하고, 파일을 변경하지 않고 그대로 두십시오. (변경 사항을 제거하지 마십시오)

잘못된 커밋을 제거하는 동안 영향을받는 파일을 변경하지 않고 유지하기를 원하므로 새로운 커밋에서 "새로운 변경 사항"을 커밋 할 수 있습니다.

이 작업을 수행하는 가장 좋은 방법은 무엇입니까?

답변

2

정확하게 이해하고 작업 복사본이 여전히 "결함있는"HEAD에 있다면 고정 파일로 "--amend" the previous commit 수 있습니다.

+0

예, 여전히 문제가 있습니다. 나는 --amend가 커밋 메시지를 변경하기위한 것이라고 생각했습니다. – Mayhem93

+0

아니요, * 모든 것을 변경할 수 있습니다 (어쩌면 부모는 아니지만 확실히 파일의 내용). – Thilo

1

아무 것도하지 않은 것으로 가정하면 git reset --soft HEAD^ 만 수행하면됩니다. 다른 경우에는 아직 내역을 게시하지 않았 으면 (다른 사용자가 이미 가져올 수 있도록 git push을 수행하지 않았 으면) 변경 사항을 적용하고 커밋하고 git rebase -i (대화식)을 사용하여 기록을 편집하십시오.

+0

또는 무언가를 제거하려면 --soft를 사용하지 마십시오. – Ikke

+0

다른 지점에서 git push를했는데 (하지만 커밋이 있었기 때문에 원격에서 삭제했습니다). – Mayhem93

+0

@ Mayhem93 : 당신은 Ikke, Thilo 또는 내가 제안한 것을 할 수있는 것보다. – fork0

관련 문제