Git&GitHub

Ch 11. 브랜치 만들기 및 이동하기

안경 쓴 들레씨 2023. 7. 6. 15:58

실습 상황 만들기

 

1. 터미널 창을 열어 홈 디렉터리에 'manual'이라는 새 디렉터리를 만들고 해당 디렉터리로 이동합니다.

 

$ cd ~
$ mkdir manual
$ cd manual

 

2. manual 디렉터리를 저장소로 만들고 ls -al 명령을 사용해서 .git 디렉터리가 만들어졌는지 확인해봅니다. 

 

$ git init
$ ls -al

 

 

3. manual 디렉터리 안에 work.txt 파일을 만들겠습니다. 터미널에 아래와 같이 입력해서 빔을 열고, 'content 1'이라는 내용을 입력한 후 저장합니다. 

 

$ vim work.txt

 

4. 이제 work.txt 파일을 스테이지에 올리고 커밋합니다. 커밋 메시지는 간단히 'work 1'이라고 하겠습니다. 

 

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

 

5. 커밋이 완료되면 git log를 입력해서 커밋 내역을 확인해봅니다. 커밋 해시 오른쪽에 있는 (HEAD -> main)은 HEAD가 현재 main이라는 브랜치를 가리키고 있다는 의미입니다. 그리고  (HEAD -> main)이 붙은 커밋이 가장 최신 커밋입니다. 

 

 

6. work.txt 파일을 두 번 더 커밋하겠습니다. work.txt 파일에 'content2'를 추가한 후 'work 2'라는 메시지와 함께 커밋합니다. 다시 한 번 work.txt 파일을 열고 'content 3'을 추가한 후 'work 3'이라는 메시지와 함께 커밋합니다.

 

$ vim work.txt
$ git commit -am "work 2"
$ vim work.txt
$ git commit -am "work 3"

 

7. 마지막으로 커밋 로그를 확인하기 위해 git log를 입력합니다. 3개의 커밋이 만들어졌고, 가장 최신 커밋인 work 3에 (HEAd -> main)가 표시되어 있습니다. 

 

 

 

새 브런치 만들기

 

초기 manual을 만들었는데 여러 가게에 서로 다른 manual을 제공해야한다고 가정합시다. 이를 해결하기 위해 브랜치를 사용하겠습니다. 가게는 apple, google, ms가 있다고 가정하겠습니다. 

 

1. 깃에서 브랜치를 만들거나 확인하는 명령은 git branch입니다. 

 

$ git branch

 

2. 위의 명령을 입력하면 main이라고 나타납니다. 저장소를 만들면 main 브랜치가 기본으로 생성되고, 그동안 main 브랜치에서 작업하고 있었던 것을 의미합니다. 

 

 

3. 새로운 브랜치를 만들려면 git branch 명령 다음에 만들려는 브랜치 이름을 적습니다. apple의 브랜치를 만들기 위해 아래와 입력합니다. 

 

$ git branch apple

 

4. apple 브랜치가 만들어져도 화면에는 아무것도 나타나지 않습니다. 현재 저장소의 브랜치를 확인하기 위해 git branch를 입력합니다. 그러면 main 브랜치 위에 apple 브랜치가 추가된 것을 확인할 수 있습니다. main 앞에 *가 표시된 것은 여러 브랜치 가운데 현재 작업하는 브랜치를 나타냅니다. 

 

$ git branch

 

5. 브랜치가 추가된 후에는 커밋 로그 화면도 다르게 나타납니다. git log 명령을 사용해 확인해봅니다. (HEAD -> main, apple)로 바뀌어 있습니다. 저장소에 main과 apple이라는 2개의 브랜치가 있고, HEAD -> main이므로 현재 작업하는 브랜치는 main 브랜치라는 의미입니다. 

 

 

 

6. 위의 방법으로 google 브랜치와 ms 브랜치를 만듭니다. 그런 다음 git branch 명령으로 저장소 안에 있는 모든 브랜치를 확인합니다.

 

$ git branch google
$ git branch ms
$ git branch

 

 

이 상태에서 새 커밋을 추가하기

 

1. git log로 확인해보면 work 3 커밋 해시의 오른쪽에 main 브랜치를 비롯해 ms, google, apple 브랜치가 함께 표시되어 있습니다. 즉, 이것은 main 브랜치 뿐만 아니라 ms와 google, apple 브랜치에도 최신 커밋이 work 3이라는 의미입니다. 

 

 

2. work.txt 파일안에 'main content 4'라는 내용을 추가한 후 'main work 4'라는 메시지와 함께 커밋하겠습니다.

 

$ vim work.txt
$ git commit -am "main work 4"

 

3. git log 명령에 --oneline 옵션을 추가해서 확인하겠습니다. --oneline 옵션은 한 줄에 한 커밋씩 보여주기 때문에 여러 커밋을 한눈에 확인할 때 편리합니다. 

 

$ git log --oneline

 

4. 최신 커밋인 main work 4는 main 브랜치에만 적요되어 있고 ms와 google, apple 브랜치는 아직 work 3 커밋 상태입니다. 즉, 새로 만든 커밋은 현재 브랜치에만 적용되고 나머지 브랜치에는 적용되지 않습니다. 

 

 

 

브랜치 전환하기 - git switch

 

1. 현재 브랜치에서 다른 브랜치로 전환하려면 git switch 명령 다음에 브랜치 이름을 사용합니다. 아래와 같이 입력해서 apple 브랜치로 전환합니다. 

 

$ git switch apple

 

2. $ 커서 바로 위에 나타난 파일 경로 끝에 (apple)이라고 표시된다면 현재 apple 브랜치에서 작업하고 있다는 뜻입니다.

 

 

3. 작업 브랜치를 apple 브랜치로 바꿨을 때 어떤 변화가 생기는지 확인하기 위해 git log 명령을 사용해서 현재 브랜치의 커밋 로그를 확인합니다. 

 

$ git log --oneline

 

 

4. apple 브랜치를 만들기 전까지 main 브랜치에 있던 커밋들은 그대로 apple 브랜치에도 적용이 되므로 work 3 커밋까지 표시됩니다.  커밋 해시에서 HEAD가 apple을 가리키는 것도 확인할 수 있습니다. 

 

 

5. cat 명령을 사용해 work.txt 파일의 내용을 확인해봅니다.

 

$ cat work.txt

 

 

6. 최신 커밋이 work 3이기 때문에 content 1부터 content 3까지 3개의 행만 있습니다. main content 4는 apple 브랜치를 분기한 후에 main 브랜치에 추가된 커밋이기 때문에 apple 브랜치에 영향을 미치지 않았다는 것을 알 수 있습니다.

 

 

 

 

이 글은 Do it! 지옥에서 온 문서 관리자 깃&깃허브 입문 책을 보며 공부한 글입니다.