본문 바로가기

Git

Git CLI branch

저희 이제 실습을 하기전에 준비를 먼저해야겠죠?

저는 git폴더에 manual 이라는 새 디렉토리를 만들어주었습니다.

git mkdir manual

 

다음은 지역지장소 선언해주시고요.

git init

 

저희는 work.txt를 수정해가면서 작업을 할 것이고요.

nano work.txt

 

이게 왜 안될까요??

예전에 설명했었지만 처음 파일을 만들고 Area로 올리기 위해선

add먼저 해주었어야 했죠..

git commit -am "work 1"

 

git add work.txt
git commit -m "work 1"

 

 

자 이제 commit 을 똑같은 부분을 2번 더 할 것인데요.

완성본은 이렇게 되었습니다.

git log

 

 

 

앗 저처럼.. 커밋 메세지를 잘못쓰셨다고요?

마지막 커밋 메세지 고쳐봅시다..

git commit --amend -m "work 3"

 

휴..

 

이렇게 content 1,2,3 가 만들어졌고요.

저희 고객사가 여러개 있다고 가정하면 이 디렉토리를

복사해서 고객사마다 새로 만들어줘야 겠죠?

 

하지만.. 저희에게는 branch가 있으니 괜찮습니다!

어떻게 branch가 이것을 해결할까요?

 

저희의 상태를 정리해보자면 새로운 고객사들을 만나서 고객사마다 다른 내용을 추가해야된다는 상황이죠?
우선 브렌치 한번 만들어보기 전에 branch가 만들어져 있는지 확인해보겠습니다.

git branch

 

 

 

"어라? 저희는 브렌치를 만든적이 없는데요? "

main이나 master가 뜨실텐데 저희는 저희도 모르게 저장소를 만드는 순간

master or main 브렌치라는 기본 브렌치 위에서 작업하고 있었던 것입니다.

 

그러면 저희 고객사가 apple이라고 생각하고 apple branch도 만들어보겠습니다.

git branch apple

 

그리고 git branch로 목록을 확인한다면 apple이 추가된것이 확인하실 수 있고

앞에 별이 붙어있다면 아직도 저희는 main branch에 속해 있다는 것 입니다.

 

보시는 것처럼 apple이 추가되었고 Head가 master를 가리키고 있죠?

저희는 지금 master에 속해있는 상태다! 이렇게 현재 브렌치 확인할 수 있겠고요

git log --all --graph --oneline

 

이번엔 구글, ms도 만들어봅시다. 

잘 생성되었죠?

git branch google

 

저희가 생성한 각각의 브렌치들은 현재 마스터에 속해있는 상태로 만들었기 때문에

모두 work3 상태라는 공통점들을 가지고 있습니다.

이제 nano 에디터를 사용해 디렉토리를 손봐줍시다.

nano work.txt

 

 

이제 am 해야겠죠?

git commit -am "work4"

 

다시 한번 확인해줍시다.

git log --all --graph --oneline

 

이제 어떻게 바꼈죠?

저희가 작업했던 브렌치는 main 브렌치였고

나머지 브렌치들은 work3에 남겨져 있는것을 확인할 수 있죠?

 

지난 포스팅에서 checkout 명령어 배웠었죠?

이렇게 명령하면 어떻게 될까요?

내용들은 어떤 변화를 겪게 될까요?

브렌치를 전환해봅시다.

git checkout apple

 

 

 

Head는 apple를 가르키게 되었고 work 3라는 버전이 만들어진 시대로 돌아갔습니다.

헉 진짜 시간여행을 해버렸네요..? 신기하죠??

브렌치의 마지막 커밋으로 돌아갔어요!

 

그럼 apple 브렌치에도 글을 수정해봐야겠네요.

nano work.txt

 

이제는 Area에 올려놓고 commit해봐야겠죠?

git commit -am "apple work 4"

 

 

다시 확인도 해봐줍시다.

git log --all --graph --oneline

 

정리해보자면 현재상태는 Head가 apple을 가리키고 있기 때문에 apple에 있고요!

apple work 4 라는 버전의 부모(뿌리)는 work 3이죠?

이렇게 그래프로 표현해준다는게 참 대단하네요.. ㄷㄷ

 

그렇다면 ms, google 도 여러분들이 해주셔야겠죠? ㅋㅋㅋㅋㅋㅋㅋ..

이렇게요.. 이쁜나무가 되었네요 ㅎㅎ..

 

 

 

'Git' 카테고리의 다른 글

Git CLI 협업  (1) 2024.01.31
Git CLI merge & conflict 병합  (1) 2024.01.23
Git CLI branch & conflict  (0) 2024.01.22
Git CLI 당겨오기 (pull)  (1) 2024.01.22
Git CLI 복제 (Clone)  (0) 2024.01.22