3. Git & Branch
1. Git의 버전관리 시스템에서 여러 갈래로 퍼저나가는 데이터 흐름으로 사용한다. git으로 버전관리를 시작하면 기본적으로 master branch가 만들어지고, 커밋할 때 마다 master branch는 최신 커밋을 가리킨다. 새 branch를 만들면 기존에 저장한 파일을 master branch에 저장하면서 새로운 파일을 생성할 수 있는데 이를 분기한다고 한다. 새 branch에서 원래 master 브랜치에 합치는 것을 병합, merge 라고 한다.
2.
$ git branch : 브랜치를 만들거나 확인함. 현재 branch를 표시함
$ git branch apple : apple 이라는 branch를 만듦 , 바로 이동하지 않음
google, ms branch를 추가 생성한 다음
$ git checkout apple : apple branch로 체크아웃, 이동 한다.
apple branch에서 cat work.txt로 내용을 확인하면 content 3 까지만 표시된다
3.
apple branch에서 work.txt에 'apple content 4'를 추가하고 저장
$ vim apple.txt로 새로운 파일도 만들고
$ git add . 으로 2개의 파일을 동시에 staging하고 "apple content 4" 메시지와 커밋하자
$ git log --oneline --branches --graph: --한 줄로 --각 branch의 커밋을 --그래프로 볼 수 있다
저게 그래프인가 싶긴 하다.
$git log master ..apple : branch 간의 차이를 확인할 수 있다. >> 순서는 master에는 없고 apple에만 있는 커밋을 보여준다
4.
$cd ~
$git init manual-2
$cd manual-2
$ls -la
$vim work.txt 에 '1' 입력 후 'work 1' 메시지와 커밋
$ git branch o2 로 새로운 branch를 만들고
현재 master branch에 master.txt라는 파일에 'master 2'라고 입력하고 'master work 2' 메시지와 저장
$ git checkout o2
$vim o2.txt > o2 2라고 저장
$ git add o2.txt
$ git commit -m "ow work2"
$ git log --oneline --branches --graph 로 커밋 상태를 확인해보자
$ git checkout master
$ git merge o2 를 하면 master브랜치에 o2 branch를 병합할 수 있다
$ git merge o2 --no-edit >> 브랜치를 병합할 때 편집기 실행을 하지 않는다
$ git merge o2 --edit >> 다시 메시지를 추가,수정 하고 싶다면
병합이 끝난 다음 사용하지 않는 branch를 git에서 삭제할 수 있는데 같은 이름의 branch를 다시 생성하면
예전 내용을 그대로 다시 볼 수 있다
$ git checkout master
$ git branch -d o2 : -d 옵션을 사용하여 branch를 삭제한다
5.
test라는 git repository를 생성하고 test directory에서 c1.txt 파일을 만든 다음 커밋한다.
git log 명령을 실행하면 (HEAD -> master) 표시가 뜨는데 HEAD는 현재 working directory가 어느 버전을 기반으로 작업하고 있는지 표시한다.