기타/Git

GIT_branch

서울소시민 2017. 8. 19. 18:35

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한다.

 

수련하기

https://git-scm.com/book/ko/v2/Git-%EB%B8%8C%EB%9E%9C%EC%B9%98-%EB%B8%8C%EB%9E%9C%EC%B9%98%EC%99%80-Merge-%EC%9D%98-%EA%B8%B0%EC%B4%88

 

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