본문 바로가기
개발 공부 일지/Git

Git 활용하기

by yelimu 2024. 7. 11.

reset 후에도 다시 최신 커밋으로 돌아갈수 있다. 똑같이 reset +커밋아이디

 

최신 커밋 아이디를 모른다면?

git reflog 로 조회할 수 있음 (HEAD가 가리켜온 커밋들을 보여줌)


커밋 히스토리 조회하기

 

git log --pretty=oneline --all : 현재 HEAD가 가리키는 브랜치를 포함한 모든 브랜치의 커밋 히스토리 조회

(모든 커밋이 순서대로 보여짐)

git log --pretty=oneline --all --graph : 코드흐름을 그래프로 나타내줌  *=커밋 ---브랜치

 


get rebase 사용하기 : merge와 달리 커밋이 남지 않음 / 깔끔한 커밋 히스토리를 원할때 

 

상황) main branch에서 test branch 생성하고, 각각의 코드를 수정 후 커밋 (main: A, test: B)

main branch에서 test branch rebase 하기 -> 커밋을 재배치한다

git rebase test => 메인 브랜치의 베이스를 테스트 브랜치로 재지정

conflict 해결 후 커밋하지않고! 

git rebase --continue => 리베이스를 계속 진행해라

=> 코드흐름: base - B - A (하나의 브랜치가 됨)


한 브랜치에서 작업 도중에 다른 브랜치로 checkout 하면 작업하던 내용이 사라짐

(HEAD가 다른 브랜치를 가르키면 워킹디렉토리도 해당 브랜치의 커밋 내용으로 바뀌기때문)

git stash 

워킹디렉토리에서 작업하던 내용을 깃이 (stack)에 따로 보관 & 워킹디렉토리는 다시 최근 커밋상태로 초기화됨

stack: 입구와 출구가 같은 형태

git stach list -> 스택 조회 

 

다른 브랜치로 checkout 가능해짐

 

다시 작업하던 브랜치로 돌아와서 스택에 있는 내용 워킹디렉토리로 가져오기 

git stash apply

git stash apply stash@{n} : 특정 스태시 불러오기


잘못된 브랜치에서~ 작업하고 있었다면? ㅠ ㅁ ㅠ !

이때도 stash 를 쓸수있다! stack 은 꼭 같은 브랜치에서만 가져올수있는게 아님

 

스택이 많이 쌓이면 헷갈리니까 이미 불러온 스태시는 삭제해주자

git stash drop stash@{n}

 

apply 와 drop을 한번에 해주는 커맨드 = pop

 


필요한 커밋만 가져오기 

브랜치A에서 커밋1 -> 커밋2 로 거쳐왔을때

브랜치B에 커밋 1만 반영하고 싶다면 

 

머지하고 필요없는 내용을 지워도 되지만 그걸 더 편하게 해주는 커맨드

git cherry-pick + 커밋 아이디


커밋1-> 커밋2 후에 커밋1 삭제하고 커밋2 내용만 유지하고 싶을때

git reset --soft 커밋1

git add . (워킹디렉토리는 커밋2 내용을 가지고있기 때문에)

git commit

=> 하나의 커밋만 남길수있다


버전관리를 할 필요가 없는 파일이 있다면 

-> .gitignore 파일에 그 이름을 추가하고 버전관리를 시작

add나 commit 하지않아도 git에서 무시함

 

(github에서 레포지토리 생성할 때 add.gitignore 파일을 만들수있다)

또는 로컬에서 .gitignore 파일을 만든다음 무시하고싶은 파일들을 넣어 push 해서 만들수있다 

 

ignore 파일 추천해주는 사이트 (운영체제/프로그래밍언어/개발환경 등에 따라) 

https://www.toptal.com/developers/gitignore

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

깃... 내용도 많고 많다

'개발 공부 일지 > Git' 카테고리의 다른 글

Git 복습  (1) 2024.07.12
git 의 세가지 작업 영역  (0) 2024.07.11
Git 브랜치 다루기  (0) 2024.07.10
Git 커밋 다루기  (1) 2024.07.10
Github에 커밋이 안된다면?  (0) 2024.07.10