AI 공부하는 도비

대학원생이 AI, NLP등을 공부합니다

코딩

[Git 명령어] rebase, rewind, reset

공부하는 도비 2020. 7. 18. 21:10

Rebase

//공식 upstream 저장소에서 최신 commit history 가져오기

$ git fetch upstream master

 

//최신 commit history 기준으로 베이스 갱신(rebase)

$ git rebase upstream/master

 

//Fork 한 저장소(GitHub)도 수정하기 (PR은 자동으로 갱신)

$ git push --force origin [branch-name]

 

Rewind

//수정내역 과거시점으로 되감기

$ git rebase -i --root

편집기에 나오는 내용중 원하는 시점인 commit의 'pick'을 'edit'으로 수정한다.

 

Continue

/수정내역 다시 현재시점으로 풀기

$ git rebase --continue

 

 

*rebase과정 취소하기

$ git rebase --abort

 

*rebase 초기화

$ git reset --hard origin/master

 

 

Reset명령어

$ git reset --soft HEAD~1

--hard와는 다르게 commit정보만 삭제하고 파일 변경분은 남겨둔다.

$ git reset --hard HEAD~1

최신커밋삭제 뿐만아니라 파일 변경분도 완전히 삭제한다.

 

 

 

예. 중간에 낀 commit 2개를 하나로 합치기

commit 합치기

$ git rebase -i --root //원하는 시점의 pick을 edit으로 수정

$ git reset --soft HEAD~1

$ git status //옵션

$ git commit --amend

$ git rebase --continue

 

합쳐진 결과 확인

$ git log --oneline

$ git show [commit ID]

 

 

예. 중간에 낀 commit 삭제하기

커밋삭제하기

$ git rebase -i --root

$ git reset --hard HEAD~1

$ git status

$ git rebase --continue

 

삭제된 결과 확인

$ git log --oneline

$ git shortlog

'코딩' 카테고리의 다른 글

Git에 코드 올리는 명령어 간단하게 정리  (0) 2020.07.20
nano 편집기 사용  (0) 2020.07.18
[Git 명령어] branch, commit, stash  (0) 2020.07.18
[Git 명령어] Git 설정하기  (0) 2020.07.18
[Git 명령어] 프로젝트 읽기  (0) 2020.07.18