브랜치는 앞서 고객사를 예로 들어 각기 다른 버전의 사용설명서를 제공해야 할때 사용하는 것으로 필요하다고 했었습니다.
그렇다면 깃에서 브랜치는 어떻게 만들까요?
테스트를 위해 저는 C바로 아래에 BranchTest라는 디렉터리를 만들겠습니다!
디렉터리를 만들고 나서 저장소를 만든후 ls명령을 이용해 .git 디렉터리가 잘 만들어졌는지 확인해보겠습니다.
mkdir BranchTest
cd BranchTest
git init $ls -la
잘 만들어 졌네요!
이번에는 BranchTest 디렉터리 안에 vim을 이용해서 test.txt파일을 만들고 content 1이라는 내용을 입력하겠습니다.
vim test.txt
방금 만들 test.txt파일을 스테이징하고 커밋까지 해보겠습니다!
커밋 메시지는 "test 1"로 하겠습니다.
이후 log까지 확인해주세요
git add test.txt
git commit -m "test 1" $git log
그런다음 파일 안의 내용에 content 2와 content 3를 각각 추가하면서 "test 2", "test 3"의 커밋메세지로 커밋해보겠습니다.
HEAD -> master가 test3의 메세지로 커밋한 내역에 있습니다.
현재 HEAD가 master 브랜치를 가리키고 있습니다.
새로운 브랜치 만드는 명령어(git branch)
git branch
git branch명령을 이용하면 * master라는 문구가 나옵니다.
저장소를 만든면 master라는 브랜치가 기본적으로 생성이 되고 master 브랜치에서 작업하게 됩니다.
git branch kh
git branck
git branch kh로 kh브랜치를 만들고 다시한번 브랜치를 확인해보면 kh가 추가되어있습니다.
git log
이후 log를 찍어보면 HEAD -> master, kh라고 나오네요.
이것의 의미는 현재 저장소에는 master와 kh라는 브랜치가 있고 HEAD가 가르키는 master브랜치에서 작업중이다 라는 의미입니다.
git branch mjc
git branch duksoo
git branch
($git branch duksoo는 오타입니다 ㅠㅠ 그냥 넘어가주세요,, 민망)
mjc 브랜치와 duksoo브랜치가 추가 되었네요!
* master가 있는것을 보니 현재 작업중인 브랜치는 master 브랜치 인것 같죠??
*은 포인터라고 생각하시면 될것같습니다.
현재 작업중인 브랜치는 master브랜치 이지만 mjc, kh, duksoo 브랜치도 마지막 커밋로그가 test 3입니다.
이제 브랜치를 옮겨가며 작업해 보겠습니다.
브랜치 이동하기( git checkout )
우선 test.txt파일에 "master content 4"라는 내용을 추가로 입력하고 "master content 4"라는 이름으로 커밋해보겠습니다.
이제 로그를 확인해 볼텐데요.
git log에 --oneline 옵션을 추가해서 확인해보겠습니다.
oneline옵션은 한 줄에 한개의 커밋내역을 나타내 주는 옵션인데 커밋의 간략한 확인을 위해 사용할때 유용합니다.
git log --online
HEAD의 화살표에 따라 현재 브랜치는 master에 있습니다.
master 브랜치의 최근 커밋은 "master content 4"이고 mjc, kh, duksoo는 "test 3"입니다.
그러면 이제 checkout을 통해 kh브랜치로 브랜치를 이동해보곘습니다.
명령과 같이 브랜치를 이동하는 것을 'kh로 체크아웃 한다' 라고도 합니다.
git checkout kh
브랜치가 바뀐것을 확인할수 있습니다!
다시한면 log를 통해 어떤 변화가 있는지 확인해보겠습니다.
git log --oneline
현재의 브랜치는 kh이며 최근 커밋은 "test 3"인것을 확인할수 있습니다.
아까전 master content 4 라는 내용을 추가하고 커밋한 내역은 없는걸까요?
cat 명령으로 확인해보겠습니다.
cat test.txt
test 3으로 커밋한 내역의 내용까지만 있습니다!
kh브랜치는 master 브랜치에서 분기된 후 master 브랜치에서 추가된 커밋내역은 kh브랜치에 반영되지 않습니다.
본 포스팅은 DO it! 지옥에서 온 문서 관리자 깃&깃허브 입문 도서를 참고하며 공부한 내용을 포스팅 하였습니다.
'Git > Github' 카테고리의 다른 글
[Git & GitHub] 브랜치(branch) 병합(merge) (0) | 2022.06.19 |
---|---|
[Git & GitHub] 브랜치정보확인(새로운 브랜치에서 커밋) (0) | 2022.06.18 |
[Git & GitHub] Branch?브랜치란? (0) | 2022.06.16 |
[Git & GitHub] 작업 되돌리기(checkout, reset) (0) | 2022.06.15 |
[Git & GitHub] 깃허브 방금 커밋한 메세지 수정하기 --amend (0) | 2022.06.14 |