파게로그
branch 만들기 본문
branch 생성
vim f1.txt
// agit add f1.txt
git commit -m "commitMsg1"
vim f1.txt
// b(append)git commit -am "commitMsg2"
// 자동으로 add하지만, 아직 버전 관리가 시작되지 않은, 즉 한 번도 add하지 않은 파일은 자동으로 add되지 않음git log
git branch
// * master // git 사용 순간부터 기본 branch, 즉 master를 사용 중임git branch exp
// 새로운 branch 만듦git branch
// exp
* mastergit checkout exp
// master에서 checkout하여 exp로 들어가는 느낌으로 생각하면 편함git branch
// * exp
master
ls -al
git log
// master과 exp는 같은 상태. branch를 생성하면, 그 branch는 현재 속해 있는 branch의 상태를 그대로 복사함
vim f1.txt
// c(append)
git commit -am "commitMsg3"
git log
git checkout master
git log
// 1 2cat f1.txt
// ab
git checkout exp
git log
// 1 2 3cat f1.txt
// abc. 어느 branch에 속해 있느냐에 따라서 파일의 내용도 다르게 보임
vim f2.txt
git commit -am "commitMsg4"
git checkout master
// f2.txt가 사라짐git checkout exp
// f2.txt가 다시 나타남
git branch
git log
// 무엇이 master이고 무엇이 branch인지 구분할 수 없음git log --branches --decorate
// repository의 모든 branch를 보여줌
// master: master의 최신 커밋이 2, exp: exp의 최신 커밋이 4, HEAD: 현재 branchgit log --branches --decorate --graph
// 그래프로 시각화git log --branches --decorate --graph --oneline
branch 차이점 보기
git log master..exp
// master에는 없고 exp에는 있는 것을 보여줌git log exp..master
// exp에는 없고 master에는 있는 것을 보여줌git log -p exp..master
// 내용까지 필요할 때
git diff master..exp
// 각 branch의 현재 상태를 비교할 수 있음(앞은 master, 뒤는 exp)
branch 병합
* 7081152 (HEAD -> master) 5
| * b774b3e (exp) 4
| * 4b3ef66 3
|/
* ec1d988 2
* 9c9ebe0 1
exp를 master로 옮기기 = commit 3, commit 4의 내용을 master branch도 갖게 하기
git checkout master
// 목적지에서 해야 함!git merge exp
// 해당 내용의 commit이 만들어지고, 이 commit은 master의 최신 commit이 됨. 부모가 2개가 됨.
* 1f91a45 (HEAD -> master) Merge branch 'exp'
|\
| * b774b3e (exp) 4
| * 4b3ef66 3
* | 7081152 5 // exp는 3,4를 갖지만 5를 가지지못함
|/
* ec1d988 2
* 9c9ebe0 1
exp가 master가 작업한 commit 5의 내용도 포함하도록 하려면?
git checkout exp
git merge master
* 1f91a45 (HEAD -> exp, master) Merge branch 'exp'
// exp는 master와 똑같은 commit을 최신 commit으로 가짐
// exp는 master와 똑같이 3,4, 그리고 5를 공통으로 가짐
|
| * b774b3e
| * 4b3ef66 3
* | 7081152 5 // exp는 3,4를 갖지만 5를 가지지못함
|/
* ec1d988 2
* 9c9ebe0 1
이제 exp는 필요 없으니까 지워도 된다.
git checkout master
git branch -d exp
'콤퓨타 왕기초 > Git' 카테고리의 다른 글
Git을 연습할 수 있는 사이트 (0) | 2020.11.04 |
---|---|
commit에 대한 기본적인 명령어들 (0) | 2020.10.22 |