sharingStorage

git add, commit, push 명령어로 추가한 내용 취소 본문

git

git add, commit, push 명령어로 추가한 내용 취소

Anstrengung 2022. 3. 21. 14:57

git의 저장소 커밋과정은 아래의 사진과 같이 working derectory, staging area, local repo(로컬 저장소) 그리고 remote repo(원격 저장소)를 거쳐서 나타난다. 

 

working 디렉토리에서 파일의 변경 작업을 하고 이중 커밋할 내용을 git add명령어를 통해 staging area에 추가한다. 그 이후 git commit 명령어를 통해 로컬 레포지터리에 커밋한 후 마지막 git push명령어를 통해 원격 레포지터리에 커밋한다. 

 

git에 대한 기본적인 내용은 아래를 참고하면 된다.

 

git이란?

git이란?  - 형상 관리 도구 중 하나  - 버전 관리 시스템이라고도 한다.  - Git은 소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있게 해주는 무료 공개 소프트웨

anstrengung-jh.tistory.com

 


git add 명령어 취소

git reset HEAD [file]

아래와 같이 실수로  git add . 명령어를 사용하여 모든 파일을 Staging Area에 넣은 경우 파일을 다시 Unstaged상태로 되돌리는 명령어가 있다.

뒤에 파일명이 없으면 add한 파일 전체를 취소하고 파일명이 들어가면 파일명과 일치하는 파일을 Unstaged상태로 되돌린다.

git reset HEAD //add한 전체 파일 Unstaged한 상태로 되돌림

git reset HEAD filename1.ts  //filename1.ts파일만 Unstaged한 상태로 되돌림

 


git commit 명령어 취소

1. git log 명령어를 통해 commit 목록 확인

git log

2. 3가지 옵션을 활용해 git reset 명령어 사용

git reset --soft HEAD^
// commit을 취소하고 해당 파일을 staged상태, 즉 add명령어를 사용한 상태로 보존


git reset --mixed HEAD^
// 기본 옵션

git reset --hard HEAD^
// commit을 취소하고 해당 파일들을 Unstaged상태, 즉 add명령어 사용 전 상태로 보존

git reset HEAD^^
// 가장 최신 커밋 두개 취소 (꺽쇠 갯수에 따라 순서대로 삭제)

 


git commit message 변경

git commit -amend

커밋 내용을 덮어 쓸 때도 사용한다.

 


git push 취소하기 

이명령어 사용 시 자신의 local내용을 remote repo에 강제로 덮어쓰기 하는 것이기 때문에 주의해야한다.

특히 협업 시 동기화 문제가 발생할 수 있으므로 팀원과 상의 후 진행하는 것이 좋다.

git reset HEAD^ // 가장 최근의 commit 취소

 

 

 

Reference

Comments