| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- usb2.0
- 멀티프로세싱
- ubuntu
- 속도저하
- 젠킨스
- DMA
- HDR
- fprintf
- fscanf
- sprintf
- context
- memcmp
- interrupt context
- interrupt handler
- makefile
- 소캣
- 문자형 디바이스 파일
- context switch
- 디스크립터
- gparted
- sscanf
- pagefile.sys
- 디스크 축소
- 프레임버퍼
- 환경 변수
- jenkins
- Shared Folder
- activities
- layouts
- intents
- Today
- Total
do{학습}while
Git) git(branch, switch, etc..) 본문
branch를 왜 사용하는거야?
코드의 복사본을 만들어 본사본(commit 기준) 상에서 원본 코드의 손상없이 코드를 작성을 위함입니다.
git branch
git branch [branch의 이름]
git branch는 branch를 생성하는 명령어입니다. gti branch 이후에 문자열로 branch의 이름을 설정할 수 있습니다.
또한 git branch [브랜치의 이름] 명령어는 현재 check-out된 commit을 기준으로 새로운 branch를 생성하는것을 의미합니다.
그렇다면! 특정 commit에서부터 branch를 생성하고 싶으면 어떻게 해야할까요?
특정 commit에서 branch 생성
1. commit hash를 이용해 branch 생성
commit hash는 commit마다 고유하게 할당받은 키값 입니다.
git branch <commit 이름> <commit hash>
commit hash로 특정 commit을 선택하고 해당 commit에서부터 branch를 생성할 수 있습니다.
2. git checkout 명령어로 Head 이동 후 branch 생성
Head는 현재 어떤 commit에 있는지 가리키는 포인터 변수와 같습니다.
git checkout <commit hash>
git chekcout 명령어를 사용하여 commit hash에 맵핑 되어있는 commit 또는 브랜치로 현재 위치를 이동합니다.(Head가 commit hash를 가리키게 됩니다.)
git branch [branch의 이름]
특정 commit으로 이동 후에 해당 commit에서부터 branch를 생성합니다.

위에 그래프를 예시로 들면
commit2에서 branch를 생성하려고 합니다.
Head를 commit2로 이동 시켜야합니다.
git checkout <commit2에 맵핑된 hash>
Head가 commit2를 가리키고 있다면 현재 위치는 commit2를 의미하고 현재 위치에서 coupon이라는 이름을 가진 branch를 생성하기 위해 아래 명령어를 실행해줍니다.
git branch coupon
git switch
git swtich [생성된 branch의 이름]
git switch 이후에 있는 branch로 Head 이동하는 명령어입니다.
git checkout VS git switch
git checkout과 git switch는 branch로 이동하는 공통점이 있습니다.
하지만 git switch 같은 경우 branch 이동 기능에 특화되어 있는 명령어입니다.
git switch를 사용해서 branch를 이동하려고 할때 전환하려는 브랜치에 작업이 아직 commit되지 않은 변경 사항이 있다면 branch 전환을 거부하고 변경 상항을 commit하거나 staging하라는 메시지가 표시됩니다.
그냥 가급적 branch 이동은 git switch를 사용할 것이다.
git merge

merge는 본인의 branch와 다른 브랜치를 병합을 시켜주는 명령어입니다.
git merge <병합하려는 branch의 이름>
git merge VS git cherry-pick
git cherry-pick 명령어 또한 병합을 도와주는 명령어입니다.
하지만 git merge와 git cherry-pick 사이에는 차이가 존재합니다.
git merge는 두 브랜치의 모든 변경 사항을 병합하는 반면,
git cherrypick은 단일 커밋만을 선택하여 복사하고 현재 브랜치에 적용합니다.
'Git' 카테고리의 다른 글
| Git) git(add, commit, push) 에 대하여 (0) | 2024.04.14 |
|---|