2013-08-21 3 views
0

다음은 내가 한 일입니다.Git에서 이전 커밋을 편집하려면 어떻게해야합니까?

  1. 파일을 수정하여 버그를 수정했습니다.
  2. git commit -a -m "comment ... "
  3. git push 나는이 커밋 밀어 후, 나는 내가 뭔가를 놓친 발견, 그래서 파일을 다시 편집하고 다시 밀어해야합니다.
  4. 문제는 새로운 커밋을 만들고 싶지 않다는 것입니다. --amend이 좋은 선택입니까?
+1

IIRC, 당신은 밀어하지 않은 경우에만 작품을 개정 말하게 아직 당신이 이미 그것을 밀어 경우 Ammend도 작동 –

+0

.. 강제로 밀어 넣을 수는 있지만 내부 워크 플로에 따라 달라지는 것은 권하지 않습니다 .. – Mattherick

+0

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

답변

1

당신은 당신이 마지막이 커밋을 통해 당신을 실행 이눔 아, 이제

//commit with your new changes 
git commit 

git rebase -i HEAD~2 

//This launches an interactive rebase where you can squash your last 2 commits into a single commit. 

을 다음과 같이 지난 2 커밋 메시지를 대화 형 REBASE 스쿼시를 사용할 수 있으며, 바꾸어 말하다 같은 다른 옵션들 (그들 스쿼시 수 있습니다 기타).

참고 : 커밋을 서버에 푸시했다면 리베이스하지 마십시오.

+0

푸시 후 새로운 변경 사항을 수정하지 말아야한다는 의미입니까? – MrROY

+0

커밋을 푸시 한 경우 기존 커밋을 리베이스하거나 변경하지 마십시오. 이것은 혼란을 가져올 것입니다. 새로운 커밋을하는 것이 좋습니다. 당신이 커밋 메시지를 변경하지 않은 한 괜찮습니다. – palerdot

+0

@palerdot 사실이 아닙니다. 'git commit --amend'는 파일 내용도 바꿀 수 있습니다. 편집 내용, 영향을받는 파일을'git add'합니다 (물건을 지우려면'git rm')하고,'git commit --amend'. 리베이스는 불필요하게 복잡합니다. – hobbs

-1

예, 편집 된 파일 git commit --amend을 입력 한 다음 다시 열 수 있습니다. 공개 기록을 편집하는 데 신경 쓰면 불편할 수 있습니다. 서버는 fast-forward가 아닌 push를 거부 할 것이지만 git push --force으로 서버를 재정의하거나 서버가 매우 엄격하게 구성된 경우 서버에서 분기를 삭제 한 다음 밀어 넣으면됩니다.

역사를 다시 작성하는 것이 합리적인 옵션이없는 경우, 단지 새로운 커밋하고 "죄송합니다":

+0

이제 "oops"커밋이 나에게 더 쉽다고 생각합니다 ... 감사합니다. – MrROY

관련 문제