programing

git: 메시지를 입력하는 도중 커밋

closeapi 2023. 8. 29. 20:38
반응형

git: 메시지를 입력하는 도중 커밋

저는 지금 하고 있는 중입니다.저는 vim에 커밋 메시지를 입력했습니다.저는 이제 제가 무언가를 바꿔야 한다는 것을 기억했습니다.제가 원하는 것을 달성할 수 있는 다른 옵션이 있다는 것을 알지만, 커밋을 중단하면서도 지금까지 입력한 커밋 메시지를 저장할 수 있는 방법이 있는지 알고 싶습니다.

편집자가 오류 코드와 함께 종료할 수 있는 경우 - Git이 커밋을 중단합니다.VIM을 사용할 때는 다음과 같이 입력합니다.

:cq

0이 아닌 오류 코드로 종료하고 커밋을 중단합니다.

예. 커밋 메시지를 다른 파일에 씁니다(:w /some/other/path.txt. 그런 다음 저장하지 않고 편집기를 종료합니다(:q!) 이전에 파일을 원래 경로에 저장한 경우에는 모든 내용을 삭제하고 빈 파일을 먼저 작성합니다(빈 커밋 메시지는 커밋을 중단합니다).

이제 "실제"를 커밋할 준비가 되었으면 대체 경로에 저장한 메시지 파일을 사용합니다.

또는 커밋 메시지를 vim의 버퍼 중 하나에 복사합니다.

이러한 작업을 수행할 필요가 전혀 없다는 점에 주목할 필요가 있습니다.commit --amend커밋을 만든 후 커밋을 변경할 수 있으므로, 사용자가 가진 커밋을 생성한 다음 푸시하기 전에 수정하는 것이 쉬운 해결책입니다.당신은 심지어 그것의 고장난 상태에서 커밋을 끝낼 수도 있습니다.reset HEAD~(작업 복사본이 커밋되기 전 상태로 이동), 작업 복사본을 수정한 다음commit -a -c HEAD@{1}이전 커밋 메시지를 사용합니다.

만약 당신이 커밋 메시지를 쓰기 위해 vim을 연 경우 #로 시작하지 않는 행을 삭제하면 git은 커밋을 중단할 것입니다.

Aborting commit due to empty commit message.

커밋을 중단할 수는 있지만 나중에 커밋을 수정하는 방법도 있습니다.현재 작업을 커밋한 다음 원하는 추가 변경을 수행하면 됩니다.git add그들, 그리고 나서 뛰어요.git commit --amend커밋 메시지 편집기로 다시 이동하고 저장하면 커밋이 추가 변경사항과 새 커밋 메시지를 포함하도록 수정됩니다.

네, 가능합니다.커밋하려면 편집자가 커밋 메시지를 파일에 기록해야 합니다..git/COMMIT_EDITMSG0 상태 코드를 사용하여 종료합니다.

VI/VIM을 사용하는 경우 다음을 수행할 수 있습니다.

  1. 커밋 메시지를 작성합니다.
  2. 커밋 메시지 저장 방법:w(은 (으)로 .git/COMMIT_EDITMSG)
  3. 가 합니다.:cq
  4. 당신이 해야 할 일을...준비 영역에 파일을 추가/제거할 수도 있습니다.
  5. 용 메 지 편 집 밋 커git commit -eF .git/COMMIT_MESSAGE

-F /path/to/file편집기에 /path/to/file의 지정된 콘텐츠를 채웁니다.그러나, 기본적으로 이것은 당신이 제공하지 않는 한 즉시 커밋을 수행할 것입니다.-e플래그를 추가하여 편집합니다.

이를 위한 간단한 방법은 빈 커밋 메시지(댓글이 포함되거나 포함되지 않음)를 넣는 것입니다.

모든 텍스트 편집기에서 작동합니다.커밋은 다음과 같이 말하지 못할 것입니다.Aborting commit due to empty commit message.

나는 보통 내 약속을 합니다.IntelliJ제공된 단자를 사용합니다.유감스럽게도 제 커밋은 수동입니다.

git commit -m'my message' // etc

그래서 내가 안전하다고 생각하는 유일한 방법은 터미널 창을 닫는 것입니다!텍스트를 저장하려면 텍스트를 강조 표시한 다음 복사한 다음 터미널 창을 닫습니다.

@bdonlan 답변은 바로 이 질문에 적합하지만, 더 나은 해결책을 원할 수 있는 상황을 지적하겠습니다.

마지막 커밋에 변경 사항을 추가하려고 합니다.그래서 당신은 @bdolan이 제안한 대로 합니다.

git add files
git commit --amend

새 메시지를 작성하는 동안 해당 커밋에 파일을 추가한 것을 후회한다고 상상해 보십시오.문제이미 저장된 커밋 메시지가 계속 표시되고 편집기를 종료하면(저장 여부와 상관없이) 이러한 변경 사항이 마지막 커밋에 추가된다는 것입니다.이러한 작업을 수행하기 전의 상태로 되돌리려면 마지막 커밋을 분할해야 합니다. 이러한 커밋은 피하고 싶을 것입니다.

은 이방법은집다가음으로 입니다.#줄이 전혀 없는 경우.종료하면 다음과 같은 메시지가 표시됩니다.

Aborting commit due to empty commit message.

그리고 당신은 마지막 약속을 전혀 바꾸지 않았습니다.

언급URL : https://stackoverflow.com/questions/9146907/git-abort-commit-in-the-middle-of-typing-message

반응형