이 포스트는..
해당 포스트는 자주 사용되는 git 명령어와 그 예시를 저장해두는 용도로 활용하는 포스트 입니다. 기타 문서에 정리해둔 내용을 옮기거나, 새롭게 알게된 지식을 쌓아가며 추후 활용하기 쉽도록 목록화시키기 위한 목적으로 사용됩니다. 매번 새로운 내용으로 갱신될 때 마다 그 날짜를 기준으로 포스트가 갱신됩니다.
최근 커밋 취소
git reset --soft HEAD~1
최신 커밋을 취소하고 변경 사항을 스테이징 영역에 유지합니다. 변경 사항은 커밋되지 않은 채로 남아 있습니다.
git reset --soft HEAD~1
git reset --mixed HEAD~1 (기본 옵션)
최신 커밋을 취소하고 변경 사항을 스테이징 영역에 제거합니다. 변경 사항은 작업 디렉토리에 유지됩니다.
git reset --mixed HEAD~1
기본 옵션이므로 --mixed 를 명시하지 않아도 동일한 동작을 수행합니다.
git reset --hard HEAD~1
최신 커밋을 취소하고 변경 사항을 스테이징 영역 및 작업 디렉토리에서 모두 제거합니다. 변경 사항은 완전히 삭제됩니다. 제일 주의해야 합니다. 이 때 까지 작업한 내용들이 싸악 사라집니다. vscode 내에서는 타임라인을 사용해서 일일이 파일 복구는 가능할 수는 있습니다.
git reset --hard HEAD~1
git commit 메시지 변경
로컬에서 커밋된 상태
로컬에서 커밋된 상태라면 비교적 간단하게 커밋 메시지를 변경할 수 있습니다. 아래와 같이 git commit --amend 명령어를 입력하면 vi 편집창이 뜹니다.
git commit --amend
그 후 키보드 [ i ] 키를 누르면 하단에 -- 끼워넣기 -- 라는 메시지가 표시되고, 그 뒤에는 키보드 조작을 통해서 상단에 fix/ 로 시작되는 최신 커밋 메시지를 직접 수정할 수 있습니다.
수정을 완료했다면 키보드 [ Esc ] 를 누르시고, :wq 을 차례대로 입력하시면 vi 편집창에서 나가면서 수정 내용을 커밋 메시지에 반영하게 됩니다.
커밋를 원격 저장소에 Push 한 경우
만일 커밋한 메시지를 토대로 원격 저장소(git 허브 등)에 푸쉬하셨다면, 앞서 방법으로는 변경할 수 없습니다. 이는 원격 저장소의 히스토리를 변경하는 작업이므로 만일 다양한 팀원과 함께 공동으로 작업하는 경우 충돌을 발생시킬 수 있습니다. 따라서 기본적으로는 이 방법을 바로 시도하지 못하게 막아두고 있습니다.
다만 강제로 변경하는 방법이 있는데, 앞서 방법과 동일하게 커밋 메시지를 로컬에서 변경하고, 추가로 git push --force 를 입력하는 겁니다.
git commit --amend # 수정 후
git push --force # 강제로 원격 저장소의 커밋 메시지를 로컬 수정본으로 변경합니다.
해당 방법은 매우 신중해야 하므로, 팀 프로젝트를 하고 있다면, 이에 대한 상황을 공유하여 커밋 메시지 변경을 이어 가야 합니다.
'나만의 모음집' 카테고리의 다른 글
[나만의 모음집] VSCODE 사용자 코드 조각 아카이브 (0) | 2024.04.30 |
---|---|
[명령어 모음집] 다양한 명령어 혹은 팁을 모아두는 아카이브 (0) | 2024.04.30 |
[성능최적화 모음집] 웹 성능을 최적화하기 위한 방법을 정리해서 모아둡니다. (0) | 2024.04.03 |
[모음집] 유용한 CSS 속성을 모아두는 아카이브 (0) | 2024.04.03 |
[모음집] 웹 성능 최적화에 대한 모음집 (0) | 2024.03.23 |