Git advanced

Hyemimi·2022년 10월 7일
0

오픈소스sw개발

목록 보기
4/4

Tree

Head 현재 사용중인 브랜치
Index Staging area , git add를 하게 되면 차지함
Working Directory actual files

Reset

1.-soft : 현재 브랜치와 HEAD 이동, 수정하고 git add를 한 상태로 돌아감
ex ) git reset --soft HEAD~ / 이전 커밋으로 이동, 주로 커밋을 잘못했을 때(커밋이름 등) 사용
2. -mixed : 현재 브랜치, HEAD, Index 업데이트( git add 한 것도 사라짐)
ex ) git reset [--mixed] HEAD~
3. -hard : HEAD, Index + working directory까지 날려버림

Revert

커밋 히스토리 보존 (아예 커밋을 되돌리는 reset과 차이)

Tag

git tag <tagname><commit id> or <branch>
수정할 수 없음

Stash

git stash

working directory를 임시로 담고있음
local에서 수정한 내용을 담고 싶을 때

Rebase

히스토리를 한 줄 세우기 하고 싶을 때

(1) Batch

topic브랜치를 master 브랜치에 붙이고 싶을 때

topic브랜치로 체크아웃 후,
git rebase master

(2) Interactive

git rebase -i <commit>

C0 이후의 commit 어떻게 할 것인지 물어봄.
다음과 같이 대답할 수 있다 !

  • pick <commit> ; 아무것도 안하고 그냥 쓸래
  • reword <commit> <새로 바꾸고 싶은 커밋명> ; 커밋 메시지를 바꾸고 싶어
  • edit <commit> ; 잠시 멈춰서 해당 커밋을 수정, 이후 git add > git commit 하면 새로운 커밋이 들어옴, 다음 커밋 시작하려면 git rebase --continue
  • fixup <commit> ;
  • squash <commit> , fixup <commit> ; <commit>과 이전 커밋 합치기 squash는 커밋명도 합쳐짐, fixup은 커밋내용까지 합쳐지지 않음

Cherry Pick

해당 커밋만 뽑아서 가져옴

git cherry-pick <commit>


오픈소스SW개발 강의 필기

profile
암냠냠

0개의 댓글