Branch
작업이 진행되다가 분기되는 상태
$ git add f1.txt $ git commit –m '1' -m : commit 창을 따로 안 띄운다
$ vim f1.txt $ git commit --am '2' -a : commit 전 자동으로 add (한번도 add되지 않은 것은 add되지 않는다.)
$ git branch Branch 현황 보기 기본 *master |
Branch 만들기
$ git branch [branch이름] $ git branch exp 현재 속한 branch의 파일을 그대로 가지고 시작
$ git checkout exp 현재 사용하는 branch에서 checkout하고 exp로 들어간다.
|
$ vim f1.txt
$ git commit '3'
$ git add f1.txt
$ git commit –m '3'
$ git log
$ git checkout master
$ git log |
Branch만들었을 때 확인방법
Master와 branch의 구별 방법
$ git log --branches –decorate 모든 branch를 보여주고, master를 구별해 줌
$ git log --branches --decorate –graph 각각의 branch가 commit할 때 빛난다.
$ git log --branches –decorate –graph --online (간결하게 조망 가능) $ stree (sourcetree 형태로 나타내준다.) |
##먼소리???##(branch 정보확인)
Master 와 exp branch의 차이를 보고 싶을 때 $ git log master..exp (master에는 없고 exp에 만 있는 것) $ git log –p master..exp (소스코드의 차이점을 보여줌)?? $git diff master..exp |
Branch merge
exp 를 master로 merge하려면 master로 checkout한 다음에 merge
$ git merge exp Exp를 master로 merge했다.
$ git log --branches --graph --decorate –online |
Master의 commit을 exp로 merge하기
$ git checkout exp $ git merge master(master를 exp로 가져온다.) $ git branch –d exp · exp branch 삭제 |
두가지 형태의 branch
$ git checkout –b iss53
-b : branch를 만들고 checkout 한다.
갑자기 master branch에서 수정해야한다.
그럼 master branch에서 branch를 따고 hotfix(긴급히 처리할 내용)
Hotfix 처리 후 master branch로 checkout한 뒤 hotfix를 merge한다.
Fast-forward(빨리 감기)
Hotfix가 commit할 동안에 master는 commit하지 않았으므로 Fast-forward
Fast-Forward
별도의 commit를 생성하지 않는다.
$ git branch –d hotfix
$ git checkout iss53
$ git commit~
이제 iss53을 master에 merge해야 한다.
Iss53이 master로부터 독립한 이후에 master가 변화가 생겼다.
Iss53과 master의 공통의 조상을 찾는다 <Common Ancestor>
C4와 C5를 merge하고 새로운 C6라는 commit을 생성한다.
Merge할 commit과 자신의 commit 그리고 공통된 조상
총 3개의 commit을 merge한다.
수련하기
merge conflict 해결
$ git branch –D exp 강제로 지우기
merge conflict
$vim f1.txt
'======='
경계선 사이로 충돌되는 부분 구별
'기타 > Git' 카테고리의 다른 글
git push 방법 (0) | 2017.11.05 |
---|---|
git 사용법 (0) | 2017.10.23 |
GIT_github (0) | 2017.08.19 |
GIT_commit, reset, revert (0) | 2017.08.19 |