브랜치의 개념

브랜치의 개념은 이전 포스팅을 참고.

git branch - 브랜치 확인과 생성 명령

명령어 설명

브랜치를 관리하는 데 사용하는 명령으로, 브랜치 확인, 생성, 삭제, 이름의 변경을 수행한다.

기본 사용법

1
2
git branch [option]
git branch <branch name>  # 브랜치 생성

옵션

옵션 full name 설명
없음   현재 저장소에 존재하는 브랜치의 이름을 나열한다.
--list   현재 저장소에 존재하는 브랜치의 이름을 나열한다.
-v –verbose 현재 저장소에 존재하는 브랜치의 이름과 상세한 정보를 나열한다.
<branch name>   branch name 이라는 브랜치를 생성하지만, HEAD는 현재 위치를 유지한다.
-m <new branch name> –move 현재 브랜치의 이름을 new branch name 으로 변경한다.
-d <branch name> –delete 지정한 브랜치를 삭제한다. 이미 병합된 경우만 가능.
-D <branch name> –delete –force 지정한 브랜치를 삭제한다. 병합되지 않은 상태의 브랜치도 삭제 가능.

예시

예시 깃 저장소

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 첫 번째 커밋 : 파일 생성
echo '#!/bin/bash' > test.sh
git add ./test.sh
git commit -m "first commit"

# 두 번째 커밋 : 파일 수정
echo "echo Hello Linux" >> test.sh
git commit -am "second commit"

# 세 번째 커밋 : 파일 수정
echo 'echo $0 $1 $2' >> test.sh
git commit -am "third commit"

# 네 번째 커밋 : 새로운 브랜치를 생성 + HEAD 이동 + 파일 수정
git checkout HEAD~
git checkout main
git checkout HEAD~1
git checkout -b new_branch
echo "another branch" >> ./test.sh
git commit -am "4th commit at new branch"

# 다섯 번째 커밋 : 파일 수정 및 커밋
echo "diff test" >> test.sh
echo "diff test - unstaged" >> test.sh
1
git commit -am "final commit"

(1) list : 브랜치 목록 나열

1
2
3
4
5
6
7
8
# (1) list : 브랜치 목록 나열  
git branch --list
>> * main
>>   new_branch

git branch
>> * main
>>   new_branch

(2) -v : 브랜치 목록과 상세 정보를 나열

1
2
3
4
# (2) -v : 브랜치 목록과 상세 정보를 나열
git branch -v
>> * main       e133ba0 final commit
>>   new_branch 41309a0 4th commit at new branch

(3) branch name : 새로운 브랜치를 생성

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# (3) branch name : 새로운 브랜치를 생성
git branch list
>> 출력 없음 (잘 생성 됨)

git branch -v
>>   list       e133ba0 final commit
>> * main       e133ba0 final commit
>>   new_branch 41309a0 4th commit at new branch

# log 확인
git log --oneline --graph --all
>> * e133ba0 (HEAD -> main, list) final commit
>> * c175163 third commit
>> | * 41309a0 (new_branch) 4th commit at new branch
>> |/  
>> * cbf9cc6 second commit
>> * 37b90cc first commit

(4) -d : 병합된 브랜치 삭제

1
2
3
4
5
6
7
# (4) -d  
git branch -d list
>> Deleted branch list (was e133ba0).

git branch
>> * main
>>   new_branch

(5) -D : 병합되지 않은 브랜치 강제 삭제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# (5) -D
git branch -d new_branch
>> error: the branch 'new_branch' is not fully merged.
>> If you are sure you want to delete it, run 'git branch -D new_branch'

git branch -D new_branch
>> Deleted branch new_branch (was 41309a0).

# log 확인
git log --all --oneline --graph
>> * e133ba0 (HEAD -> main) final commit
>> * c175163 third commit
>> * cbf9cc6 second commit
>> * 37b90cc first commit

예시 마지막 상태 도식화

Reference

UNIX시스템 - 김희천,김진욱 저