Git 취소하기 ( git add, git commit, git push )

hannni·2023년 2월 14일
0

Git

목록 보기
7/11

✏️ git add 취소하기

$ git reset [커밋아이디 or HEAD~[n]]

바로 전 add 취소는 옵션 없이 git reset 만으로 가능하고, add를 취소하면 파일이 unstage 상태로 변경됩니다.

✏️ git Commit 취소하기 + 옵션

$ git reset --soft [커밋아이디 or HEAD~[n]]

커밋 이력만 되돌리고 파일 내용은 유지합니다. 즉, add는 되어있는 staged 상태로 돌아갑니다.

$ git reset --mixed [커밋아이디 or HEAD~[n]] 

커밋, 인덱스 삭제. 파일의 변경만은 남깁니다. 즉, add 이전인 unstage 상태로 돌아갑니다.
git reset에서 옵션을 지정하지 않을 때의 기본값은 이것입니다.

$ git reset --hard [커밋아이디 or HEAD~[n]] 

커밋 이력, 파일 내용을 전부 되돌립니다. (모든 이력 삭제)
변경 자체를 수중(워킹 트리)에 남길 필요조차 없을 만큼 불필요한 커밋이었을 때만 사용합니다.

✏️ git push 취소하기

이 명령을 사용하면 자신의 local의 내용을 remote에 강제로 덮어쓰기를 하는 것이기 때문에 주의해야 합니다. 되돌아간 commit 이후의 모든 commit 정보가 사라집니다.
특히, 협업 프로젝트에서는 동기화 문제가 발생할 수 있으므로 팀원과 상의 후 진행하는 것이 좋습니다.

1. 워킹 디렉터리에서 commit 되돌립니다.

$ git reset HEAD^

가장 최근의 commit을 취소하고 워킹 디렉터리를 되돌립니다. (기본 옵션: --mixed)

$ git log oneline

로그를 확인합니다.

$ git reset [커밋아이디 or HEAD~[n]] 

원하는 시점으로 워킹 디렉터리를 되돌립니다.

2. 되돌려진 상태에서 다시 commit을 합니다.

$ git commit -m "Commit messages"

3. 원격 저장소에 강제로 push 합니다.

$ git push origin [branch name] -f

0개의 댓글