Branch
브랜치는 "복사본" 이라고 할 수 있습니다.
1) 일반적으로 main 또는 master 라는 이름의 브랜치가 생성됩니다.
2) 특정한 기능을 새로 만들때 main 브랜치는 안정적인 상태로 유지하고 다른 브랜치를 만들어 실행해볼 수 있습니다.
2) 협업을 할때 각자 브랜치를 만들어 개발하고 필요시 통합( merge ) 하는 용도로 브랜치를 사용할 수 있습니다.
Branch 확인하기
$ git branch
* master
Branch 생성하기
$ git branch promotion
// 생성만 한다.
$ git branch -M reservation
// 생성하고 즉시 이동한다.
$ git brnach
// 생성된 브랜치 확인
* main
promotion
reservation
* 표는 현재 위치를 의미합니다.
Branch 삭제
$ git branch -d reservation
$ git brnach
// 브랜치 확인
* main
promotion
Branch 이동
$ git switch shop
// 브랜치 이동
$ git switch -c shop
// 브랜치 생성하고 이동
Branch 병합
main 브랜치에서 aa.ph, bb.txt 작성 후 스테이징 + 커밋
promotion 브랜치에서 cc.txt, dd.txt 작성 후 스테이징 + 커밋
* promotion 에서 개발한 기능을 main 에 합치기
$ git switch main
$ git merge promotion
// promotion 에 만 있었던 cc.txt 와 dd.txt 가 main 에 추가됨.
** git merge 가 되지 않고 아래 메세지가 나타난다면
fatal: refusing to merge unrelated histories
처음 초기화 한후 원격저장소를 pull 하는등 동기화가 되지 않는 상태일때 나타나는 현상이다.
아래와 같은 명령어를 사용한다.
git pull origin 브런치명 --allow-unrelated-histories
충돌해결
main 브랜치에서 아래와 같이 shop.php 작성 후 Staging ( git add ) + Commit ( git commit )
<?php
$item_name = "샴푸";
?>
shop 브랜치에서 아래와 같이 shop.php 수정 후 Staging ( git add ) + Commit ( git commit )
<?php
$item_name = "린스";
?>
main 브랜치에서 shop 브랜치를 Merge
$ git merge shop
아래와 같이 VS CODE 에서는 충돌된 것을 안내해주고 선택할 수 있는 메뉴를 보여준다.
Accept Current Change : 현재브랜치의 변경 사항을 선택
Accept Incoming Change : merge 하여 받아온 브랜치의 변경사항을 선택
Accept Both Changes : 둘다 우선 선택 ( 직접 수정 필요 )
Compare Change : 비교해준다.
Checkout
브랜치 전환, 특정커밋으로 돌아가기 등 다양한 기능을 가지고 있다. ( 원격 커밋까지도 살펴볼수 있다. )
단, 최근버젼에서는 switch 가 브랜치 이동에 특화된 기능이므로 로컬 브랜치 이동은 switch 를 사용하는 것이 좋은 방법이다.
Checkout 이 Reset 과 다른점은
checkout 은 branch 의 위치는 그대로 유지하고 HEAD 를 옮기는 것으로
변경된 위치로 부터 새로운 브랜치를 만드는 등의 작업을 위해 사용합니다.
( 브랜치는 그대로 유지된 상태에서.. )
$ git checkout 커밋해쉬코드
그리고 그 사이의 변경사항은 unstaging 상태로 남아있다.
( 변경된 사항을 다시 add 할수 있다는 의미 )
checkout 으로 뒤로 이동했을때 다시 돌아갈때는 branch 명을 쓰면 됩니다.,
git checkout main
다음시간에 ...
Switch
브랜치 전환만을 위한 명령이다.
( git 2.23 에서 추가된 기능 )
git switch main2
# main2 브랜치로 전환
git switch -c main3
# main3 브랜치를 생성하고 즉시 전환
원격 브랜치
원격브랜치 추가
1) github 에서 주소확인
2) 명령어로 추가하기
$ git remote add origin <remote repository url>
origin : 별칭
main : 브랜치명
원격 저장소 브랜치 확인하기
$ git branch -r
로컬 브랜치를 원격 특정 브랜치 이름으로 푸쉬하기
$ git push origin <local branch>:<remote branch>
$ git push origin main:promotion
** 각자의 branch 를 만들고 원격에 push 해 본다.
$ git branch -r
origin/main
origin/branch
** 협업시에는 각자의 로컬 브랜치에서 원격 브랜치로 푸쉬를 하고
** 병합담당자에게 main 에 병합해달라고 요청한다.
** 이후에 각자는 main 브런치를 pull 하여 동기화한다.
$ git push <remote repository> -d <remote branch>
'Hokma Developer School :: Course 1' 카테고리의 다른 글
[Git 기초 사용법] 4. Git을 이용한 협업 / GitHub Pull Request (0) | 2024.09.27 |
---|---|
[Git 기초 사용법] 3. GitHub 이용하기 (0) | 2024.09.27 |
[Git 기초 사용법] 1. Git 시작 (0) | 2024.09.27 |
Hokma Developer School :: Course 1 (2) | 2024.09.11 |
PHP Session (0) | 2024.08.11 |