시그마 삽질==six 시그마

Git Reset/ Revert 본문

프로그래밍/GIT

Git Reset/ Revert

Ethan Matthew Hunt 2020. 3. 6. 00:16

 

 

1. Reset

 

git reset <옵션> <돌아갈 곳 커밋>

과거 특정 커밋으로 롤백 이동, 특정 커밋 후의 히스토리는 삭제(뒤로빽)

 

push안된 커밋 Reset은 안전

그러나  push한걸  취소하는 경우는 다른 팀원이 이미 pull 받았는지 확인하고 작업할 것

 

 

HEAD : 마지막 커밋

INDEX: 다음에 커밋할거(git add 되있는거==staging)

working directory : 로컬 작업 공간

 

 

//가장 최신의 commit을 취소(index 보전==전부 staging되있는 상태로) working directory 보전
//HEAD^는 헤드의 직전 위치
$ git reset --soft HEAD^


//가장 최신의 commit을 취소(index 삭제==전부 unstaging 상태로) working directory 보전/ reset의 default 전략임
$ git reset --mixed HEAD^ 



//가장 최신의 commit을 취소(index 삭제) working directory 삭제
$ git reset --hard HEAD^


//특정 커밋으로 이동 예시
git reset --soft c66813ca

https://gcapes.github.io/git-course/07-undoing/

https://www.atlassian.com/git/tutorials/undoing-changes

인텔리제이는 돌아가고픈곳 선택후 클릭

그럼 하단과 같이 나옴

 

 

 

 

1-2. 방금 pull, merge 되돌리기 원한시

pull , merge는 ORIG_HEAD 를 남기기에 해당 명령어 사용시  되돌리기 가능

 

git reset --hard ORIG_HEAD
git reset --merge ORIG_HEAD

 

 

 

 

 

 

2. Revert

 

git revert <옵션> <revert할거>

 

git revert head (최근꺼 revert)

커밋 취소는 하지만 히스토리(이력)은 남김 (취소후 앞으로 전진)

이미 push했다면 revert를 사용하는게 현명

당근 index x, working directory x,

 

여러개를 revert할시

git revet <시작hash>..<마지막revert할 hash> 하면됨

 

intellij 에서 할때는 맨 위에서부터 되돌릴거를 한개씩 위에서부터 아래로 한개씩 다 해줘야한다!!!!

 

 

 

참조 :https://stackoverflow.com/questions/927358/how-do-i-undo-the-most-recent-local-commits-in-git

 

인텔리제이는 취소해야할곳 선택후 클릭

 

 

 

'프로그래밍 > GIT' 카테고리의 다른 글

git repository 복사하기  (0) 2020.08.12
git 히스토리 초기화  (0) 2020.08.10
git branch/checkout  (0) 2020.08.10
현재 브랜치를 마스터로 만들기  (0) 2020.03.06
이미 tracking된 원격 저장소에 .gitignore 적용  (0) 2020.03.06
Comments