본문 바로가기
git

[git] stash

by 상국이 2021. 4. 26.
728x90

reset?

 : HEAD가 가리키던 branch가 가리키는 commit을 바꾸는 것

 * reset이후 커밋들이 삭제되는 것은 아님

 

rebased?

 : 현재 브랜치의 베이스를 [브랜치명]으로 재지정

 

 

Merge vs rebase ?

1. rebase는 새로운 커밋을 만들지 않는다.

2. rebase로 만들어진 커밋 히스토리는 merge로 만들어진 커밋 히스토리보다 조금 더 깔끔하다.

* 결과물은 같다! 두 브랜치를 합쳤다는 정보를 저장하고 싶은 경우 merge 그밖은 rebase를 사용하는 것이 더 깔끔하다.

 

 

Stash?

: 최근 커밋 이휴로 작업했던 내용은 모두 스택에 옮겨지고 working directory 내부는 다시 최근 커밋의 상태로 초기화

*error: Your local changes to the following files would be overwritten by checkout: ~ : checkout시 HEAD가 다른 브랜치를 가리키게 되고 그로 인해 working directory에서 수정한 내용이 변경될 수 있다는 뜻 -> 이런경우 stash 사용

 

명령어

git reflog

 : reference log의 줄인말 이후의 커밋을 기록

 

git log --pretty=oneline -all --graph

 : commit  히스토리가 각 branch의 관계를 입체적으로 볼 수 없음

 

git rebase [브랜치명]

 : 현재 브랜치의 베이스를 [브랜치명]으로 재지정

* git rebase --contunue : 컨플릭트가 발생해서 제대로 진행되지 못한 리베이스를 계속 진행

 

git stash

 : working directory에서 작업하던 내용을 깃이 따로 보관(stack에 보관)

 

git stash list

 : stack에 잘 옮겨졌는지 확인하는 명령어

 

git stash apply [작업내용의 아이디]

 : 해당 stack에 있는 내용을 다시 working directory에 가져와서 적용 (나중에 다시 사용하는 경우)

 

git stash drop [작업내용의 아이디] 

 : 해당 stash 작업내용을 삭제

 

git stash pop [작업 내용의 아이디]

 : 해당 stack의 작업내용을 적용과 동시에 스택에서 제거 (나중에 다시 사용할 필요가 없는 경우)

 

https://developing-countries.tistory.com/2

 

1. Git 기초 용어 설명

Git ? 코드 버전 관리 및 협업 프로그램 * 버전 관리 : 파일의 변화를 시간에 따라 기록했다가 특정 시점의 버전을 불러올 수 있는 기능 Working directory(working tree) ? 작업을 하는 프로젝트 디렉토리 St

developing-countries.tistory.com

 

728x90

'git' 카테고리의 다른 글

[git] pull  (0) 2021.04.26
[git] branch  (0) 2021.04.16
[git] 기본 명령어 정리  (0) 2021.04.11
[git] GitHub 기초  (0) 2021.04.11
[git] 기초 용어 설명  (0) 2021.04.11

댓글