[Git] Commit & add 의 Staging 상태 취소하기 🙌
개요 🚩
수정 한 소스코드를 Github 에 올려야 할 상태이다.
먼저 Branch
를 확인 하고,
생성된 Branch
가 없기에 내 전용 브랜치를 아래 명령어로 생성 해 주었다.
git checkout -b sw
이후,
git add .
으로 수정된 파일을 Staging 상태로 올리고,
git commit -m [커밋메세지]
로 커밋을 작성하고,
git push origin sw
로 생성한 내 브랜치로 push 하려던 순간,
git config user.name
으로 현재 레포지토리에 적용된 사용자를 확인 해 보니 내 계정이 아닌것이다..
push
를 하기 전에 알아서 다행인데,
git add
와git commit
을 취소 해야하는데 어떻게 해야할까 ?
에서 이번 포스팅을 출발하려한다.
Commit 취소하기 🐋
먼저 git log
명령으로 현재 staging 영역에 있는 커밋 기록을 확인할 수 있다.
기록을 확인 해 보면
직전에 social for kakao
라는 커밋 메세지로
staging
영역에 올라간 커밋 기록을 확인할 수 있다.
- git reset HEAD^ (단계로 commit 취소)
- 커밋 기록 자체를 말소
- ^ 수 만큼 이전으로 돌아가게 하는 명령어
- ^ (직전, 한 단계 앞)
- ^^ (두 단계 앞)
- ~숫자 로도 가능
# [방법 1️⃣]
# commit을 취소하고 해당 파일들은 staged 상태로 워킹 디렉터리에 보존
$ git reset --soft HEAD^
# [방법 2️⃣]
# commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에 보존
$ git reset HEAD^
$ git reset HEAD~1 # 마지막 commit을 취소. 하나를 되돌림
$ git reset HEAD^^
$ git reset HEAD~2 # 마지막 2개의 commit을 취소
# [방법 3️⃣]
# commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제
$ git reset --hard HEAD^
git reset --soft HEAD^
명령어로 직전의 커밋 기록을 제거 한 모습이다.
add 취소하기 🐇
Commit
기록을 위 과정을 통해 unStaging 하였다면,
add
또한 유사한 형태로 진행할 수 있다.
git status
명령으로 현재 Staging 되어있는 파일들을 확인할 수 있다.
- git add 취소하기 (파일 상태를 Unstage로 변경하기)
# 특정 파일을 지정하여 Unstage 로 변경
$ git reset HEAD CONTRIBUTING.md
# 전체 범위를 지정하여 취소
$ git reset HEAD
해당 명령어를 실행 후 다시 git status
명령으로 현재 상태를 확인 해 보면,
Staging 영역에 있던 파일들이 취소됨을 확인할 수 있다.
계정 변경하기
이제 로그인되어있는 계정과 email 을 변경 해 주고
다시 add
, commit
, push
과정을 진행 해 주면 된다.
깃 계정 변경하기
https://wavescats.github.io/git/2023/07/24/Git-userChange.html
Reference 🌊
https://inpa.tistory.com/entry/GIT-%E2%9A%A1%EF%B8%8F-git-add-commit-push-%EC%B7%A8%EC%86%8C%ED%95%98%EA%B8%B0-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC-git-reset-restore-clean
https://wavescats.github.io/git/2023/07/24/Git-userChange.html