항상 잊어버리는 Git 명령어
Git 에 관해서는 제 편집기인 WebStorm 의 정말 잘 만들어진 통합에 너무 많이 의존하는 것 같습니다. 결과적으로 유용한 명령, 심지어 터미널에서 실행하는 경우가 거의 없는 간단한 명령도 가끔 잊어버립니다.
그래서 이 블로그 게시물을 주로 미래의 자신을 위해 공유하고 있습니다 😅.
마지막 커밋 되돌리기
아직 푸시되지 않은 마지막 커밋을 되돌리려면
reset
명령을 사용하여 이전 단계에서 기록을 되감을 수 있습니다.그러나 커밋이 이미 푸시된 경우 기록을 보존하고
revert
명령을 실행할 수 있습니다. 여기서 eec47301
는 되돌릴 커밋의 개정 번호이며 예를 들어 git log
명령) 커밋과 푸시가 뒤따릅니다.git revert eec47301
또는
reset
명령과 --hard
옵션을 사용한 후 --force
옵션을 사용하여 기록을 보존하지 않고 되돌립니다.git reset --hard eec47301
현명하게 사용해야 하는 것은 말할 필요도 없습니다.
마지막 커밋 메시지 변경
마지막 커밋 메시지가 잘못되었거나 예를 들어 오타가 있는 경우
--amend
옵션을 사용하여 마지막 또는 가장 최근의 커밋 메시지를 수정할 수 있습니다.git commit --amend
커밋이 아직 푸시되지 않은 경우 다른 작업을 수행할 수 없습니다. 반대로 이미 푸시한 경우
--force
로 repo를 업데이트할 수 있습니다.git push --force
여러 커밋 메시지 변경
예를 들어 관련 이슈 번호를 지정하는 것을 잊어버린 경우 발생할 수 있는 여러 커밋 메시지를 수정하려는 경우
rebase
의 도움을 받아 진행할 수 있습니다.이 솔루션에 대한 크레딧은 Jaco Pretorius 및 Linuxize에서 제공한 것으로 이동합니다. 모든 영웅이 망토를 입는 것은 아닙니다!
수정을 시작하려면 다음 명령을 실행합니다. 여기서
2
는 rebase
를 수행하려는 커밋 수입니다.git rebase -i HEAD~2
이렇게 하면 각 커밋에 대한 변경 사항을 지정할 수 있는 프롬프트가 열립니다.
pick e68a142 my frst update
pick 1613f1e my scnd update
커밋 메시지를 변경하려면
pick
(또는 짧은 버전 reword
)로 r
를 수정합니다.reword e68a142 my frst update
reword 1613f1e my scnd update
완료되면 저장(
:wq
)하고 프롬프트가 자동으로 변경하려는 첫 번째 선택된 커밋으로 안내합니다.my frst update
메시지를 수정하고(
x
문자를 삭제하고, i
삽입 모드로 전환하고, a
a를 추가하고 항상 Esc
편집 모드를 빠져나옴) 저장하면 프롬프트가 다시 자동으로 안내합니다. 변경하고 싶은 다음 커밋 메시지까지.my snd update
완료되면 터미널은 다음과 같이 표시됩니다.
❯ git rebase -i HEAD~2
[detached HEAD 1f02610] my first update
Date: Thu Apr 16 15:55:09 2020 +0200
1 file changed, 1 insertion(+), 1 deletion(-)
[detached HEAD 68d3edd] my second update
Date: Thu Apr 16 16:00:29 2020 +0200
1 file changed, 4 insertions(+)
Successfully rebased and updated refs/heads/master.
이 시점에서 우리의 기록은 로컬에서 다시 작성되지만 아직 리포지토리에서 업데이트되지 않았습니다. 이것이 우리가 이것을 푸시하는 이유입니다.
git push --force
리베이스 중단
위 프로세스를 실행하는 동안 문제가 발생하면
--abort
를 사용하여 리베이스 작업을 취소할 수 있습니다.git rebase --abort
병합 중단
중단에 대해 말하자면, 동일한 옵션을 사용하면서 병합을 종료하는 것도 가능합니다.
git merge --abort
태그 삭제
GitHub에서 릴리스를 삭제하면 릴리스가 삭제되지만 관련 태그는 삭제되지 않습니다. 일반적으로 브라우저를 사용하여 저장소로 돌아가면 여전히 표시됩니다.
이러한 태그를 제거하려면 Git 푸시와 옵션
--delete
뒤에 제거할 태그 이름을 사용하여 제거할 수 있습니다.git push --delete origin v0.0.1
요약
이번에는 이 명령줄을 기억할 수 있기를 바라지만 그렇지 않다면 적어도 어디에서 찾을 수 있는지 알 것입니다 😁.
집에 있어, 안전하게 있어!
다윗
Jonatan Lewczuk에 Unsplash님의 표지 사진
Reference
이 문제에 관하여(항상 잊어버리는 Git 명령어), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/daviddalbusco/git-commands-i-always-forget-5618텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)