0. 브랜치란?
브랜치(branch)
: 커밋을 가리키는 포인터
: 어떤 게 최신 커밋인지 정보를 가짐
: 깃으로 버전 관리를 시작하면 기본적으로 main(예전 버전은 master) 브랜치 생성
1. 브랜치 생성 및 이동
$ git branch
: 브랜치를 생성하거나 확인
: 새 브랜치를 만들면 기존 파일 유지하면서 내용을 수정하거나 기능 추가 가능
- 옵션
-d | 병합이 끝난 브랜치 삭제 |
-D | 병합하지 않은 브랜치 강제 삭제 |
- 새로운 브랜치 생성
git branch 새로운 브랜치
- 현재 저장소의 브랜치 확인
git branch
$ git switch
: 현재 브랜치에서 다른 브랜치로 이동
git switch 이동할 브랜치
2. 브랜치 정보 확인
전환할 브랜치에서 커밋
- master 브랜치
vim work.txt # work.txt에 'master content 3" 입력 후 저장
git commit -am "master work 3"
- apple 브랜치
git switch apple # apple 브랜치로 이동
vim work.txt # work.txt에 'apple content 3' 추가 입력 후 저장
vim apple.txt # apple.txt 생성하고 'apple content 3' 입력 후 저장
git add .
git commit -m "apple work 3"
- 커밋 저장 확인
git log --all --oneline # 모든 커밋 내용을 한 줄로 표시
브랜치와 커밋 관계 알아보기
: 모든 브랜치의 커밋을 한 줄로 표현하고, 브랜치마다 최신 커밋을 살펴보고, 이를 그래프로 표현
git log --all --oneline --branches --graph
브랜치 사이의 차이점 살펴보기
: git log 명령에서 브랜치 이름 사이에 마침표 2개(..)를 넣는 명령으로 확인
: 마침표 왼쪽에 있는 브랜치 기준으로 오른쪽 브랜치와 비교
git log master..apple
3. 브랜치 병합
$ git merge
: 브랜치 병합할 때 사용
: main 브랜치로 병합하고 싶다면 main 브랜치에서 명령어 사용해야 함
git merge 가져올 브랜치
서로 다른 파일 병합
- master 브랜치
vim work.txt # work.txt를 만들고 '1' 입력 후 저장
git add work.txt
git commit -m "work 1"
git branch google # google 브랜치 생성
vim google.txt # google.txt를 만들고 'google 2' 입력 후 저장
git add google.txt
git commit -m "google work 2"
- google 브랜치
git switch google
vim google.txt # google.txt만들고 '3' 입력 후 저장
git add google.txt
git commit -m "google work 3"
git log --all --oneline --branches --graph
- master 브랜치로 google 브랜치 병합하기
git switch master # 먼저 master 브랜치로 이동해야 함
git merge google
- git log 명령으로 커밋 확인
git log --oneline --branches --graph
한 문서의 다른 부분을 수정했을 때 병합
- master 브랜치
vim work.txt
git add work.txt
git commit -m "work 1"
git branch ms # ms 브랜치 생성
vim work.txt
git add work.txt
git commit -m "master work 2"
- ms 브랜치
git switch ms # ms 브랜치로 이동
vim work.txt
git commit -am "ms work 2"
- master 브랜치로 ms 브랜치 병합하기
git switch master
git merge ms
한 문서의 같은 부분을 수정했을 때 병합
- master 브랜치
vim work.txt
git add work.txt
git commit -m "work 1"
git branch naver
vim work.txt
git add work.txt
git commit -m "master work 2"
- naver 브랜치
git switch naver # naver 브랜치로 이동
vim work.txt
git commit -am "naver work 2"
- master 브랜치로 naver 브랜치 병합하기
git switch master
git merge naver # 충돌 발생
- 파일 내용 수정 후 커밋
vim work.txt # 충돌 없애기 위해 파일 내용 수정
git commit -am "merge naver branch"
git log --oneline --branches --graph
$ git cherry-pick
: 가져올 브랜치의 특정 버전의 변경 내용만 병합할 때 사용
git cherry-pick 체리픽할 해시
- master 브랜치
touch init.txt; git add init.txt; git commit -m "init" # init.txt 생성 -> 스테이징 -> 커밋
git branch topic
touch m1; git add m1; git commit -m "m1"
touch m2; git add m2; git commit -m "m2"
git log --oneline --branches --graph
※ 여러 명령어 동시에 사용할 때는 세미콜론(;)으로 구분
- topic 브랜치
git switch topic
touch t1; git add t1; git commit -m "t1"
touch t2; git add t2; git commit -m "t2"
touch t3; git add t3; git commit -m "t3"
git log --oneline --branches --graph
- master 브랜치로 topic 브랜치의 t2 버전만 병합하기
git switch master
git cherry-pick 02021cd
git log --oneline --branches --graph
'Git & Github' 카테고리의 다른 글
[Git&Github] 깃허브에 폴더 업로드 - master -> main branch (0) | 2023.12.22 |
---|---|
[Git&Github] 자주 사용되는 명령어 정리 (0) | 2023.11.04 |
[Git] 버전 관리(Version Control) - git init, add, commit, log, restore, revert (0) | 2023.09.11 |
[Git] 기본적인 리눅스 명령 (0) | 2023.09.10 |
[Git] 윈도우(Windows)에서 Git 설치 (0) | 2023.09.10 |