Git 충돌시 대처 명령어 정리

2021. 2. 17. 19:42카테고리 없음

주제: git 충돌 및 merge 명령어 정리할꺼야 

 

Why(왜)? :

  깃 프로젝트 버전 관리 도중 충돌이 났을때, 침착하게 잘 대처 하기 위해서

  특히, 사내 프로젝트하다가 날려먹지 않으려고.. 

 

how(어떻게)?:

  직접 충돌 내보고 , 조치 할수있는 모든 걸 체험해보고 실패해볼거야 

 

1. 게임 해보기 (장벽 낮추기) : learngitbranching.js.org/?locale=ko 

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

Commit(커밋) : "프로젝트의 스냅샷" 

- 커밋은 저장소의 이전버전과 다음버전의 변경내역(delta라 불림) 을 저장한다. 

- 사용법:

   새로운 커밋만들기 : git commit

 

Branch(브랜치) : "하나의 커밋과 그 부모 커밋들을 포함하는 작업 내역"

- 브랜치는 메모리나 디스크공간에 부담이되지 않기때문에 가능한 작은 단위로 잘게 나누는 것이 좋다.

- 사용법:

   브랜치명 브랜치 만들기: git branch  {브랜치명}

   브랜치명으로 이동: git checkout {브랜치명}

 

Merge(머지) : 2개의 브랜치 합치기 (헤드가 어딘지 유의) 

main  과 브랜치명 합치기 : git merge {브랜치명}

git checkout 

 

Rebase(리베이스): 기본적으로 커밋들을 모아서 복사한 뒤 다른 곳에 떨궈 놓는 것

 

Head는 

Head 를 분리한다는 것은 Head를 브랜치 대신에 커밋에 붙이는 것을 의미합니다.

 

캐럿(^) 브랜치명 checkout의 이전 커밋으로 이동하기

git checkout {브랜치명}^  

 

브랜치 위치 옮기기

git branch -f main C6 : main 을 커밋명 C6 로 옮기기 



변경한 내용을 되돌리는 방법 

1. git reset  : 내 로컬에서 커밋을 없애고 이전으로 돌리기

 git reset HEAD~1

2. git revert :  reset 한 내용을 다른이와 

git revert HEAD : 현재 커밋을 반영안한 이전 커밋형태로 새 커밋이 생김

 

Cherry Pick  : 현재 위치 아래의 커밋들의 복사본만들겠다.

git cherry-pick <commit1> <commit2>...

rebase-i (인터렉티브 리베이스): 이름을 잘모르는 필요한 커밋들만 복사본을 만들겠다.

git rebase -i HEAD~4 (Head위치포함 위로 4개) 

2. 이론 학습 (merge, stash, reset, rebase 등) 19일 

 

3. 이론 정리 (간단한 내용정리) 

 

4. 게임해보기 (실습) 

 

5. 실제 코드로 적용해보기 

 

6. 내용 가다듬기 (최종본 작성) 

 

 

What(무엇을)?:

  실패 과정을 겪으며 

  어떤 충돌 상황에 어떤 명령어를 쓰는게 적합한지 적을 것이다.