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(무엇을)?:
실패 과정을 겪으며
어떤 충돌 상황에 어떤 명령어를 쓰는게 적합한지 적을 것이다.