고기 대신 SW 한점/GIT

[git] Branch 브랜치 끝장내기 1

지식한점 2022. 10. 20. 20:55
반응형

소스 코드 이력을 관리하는 Version 외에 git과 같은 VCS 도구를 사용하는 또 다른 이유는 브랜치 작업 때문입니다.

각설하고 꼭 필요한 기능 위주로 정리하였습니다.

 

1. 브랜치 생성

깃의 브랜치를 생성하는 동작과 이동하는 동작은 별개입니다. 브랜치 생성은 branch 명령어를 사용하고,

브랜치 이동은 checkout 명령어를 사용합니다.

$ git branch <branchname>

'feature' 이라는 이름으로 브랜치를 만들어 봅시다.

$ git branch feature

2. 브랜치 이동(전환)

아래와 같이 입력하여 'feature' 브랜치를 체크아웃 해 봅시다.

$ git checkout feature
Switched to branch 'feature'


생성과 함께 생성된 BRANCH로 이동
$ git checkout -b feature

 

 

3. 브랜치 병합하기
브랜치 병합은 merge 명령어로 실행합니다. 이 명령어에 병합할 커밋 이름을 넣어 실행하면, 지정한 커밋 내용이 'HEAD'가 가리키고 있는 브랜치에 넣어집니다. 'HEAD'는 현재 사용중인 브랜치에 위치하게 됩니다. 위 그림에서는 'feature' 커밋에 'HEAD'가 위치하고 있습니다.

$ git merge <commit>

'master' 브랜치에 'issue1'를 넣기 위해서는 우선 'master' 브랜치에 'HEAD'가 위치하게 만들어야 합니다. 이 때에는 checkout 명령어를 이용하여 현재 사용중인 브랜치를 'master'로 전환합니다.

$ git checkout master
Switched to branch 'master'

그럼 이제 병합을 시작해볼까요?

$ git merge feature
Updating 3236789..a2b13c5
Fast-forward
 myfile.txt |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

이제 'master' 브랜치가 가리키는 커밋이 'feature'과 같은 위치로 이동했습니다. 이런 방식의 병합을 'fast-forward (빨리감기) 병합'이라고 합니다.
fast-forward병합은 commit을 나열해 놓는 식입니다.

 

 

 

4. 커밋 이동등 간단한 명령어

COMMIT 이동
$ git checkout 'commit-hash'


브랜치 목록
$ git branch -v 


현재의 한단계 이동
$ git checkout HEAD~1

현재의 5단계 이동
$ git checkout HEAD~5


돌아오기(이전 브랜치로)
$ git checkout -

 

 

5. 브랜치 일반 삭제

$ git branch -d 브랜치 이름

-d 옵션은 스테이지 상태가 깨끗할 때만 삭제를 허용합니다.

워킹 디렉터리에 작없한 기록이 있거나 add 명령어로 스테이지의 인덱스가 변경된 상태라면 삭제되지 않습니다.

삭제하려면 반드시 최종 상태가 커밋되어 스테이지 상태여야 합니다.

 

 

6. 브랜치 강제 삭제

$ git branch -D 브랜치 이름

대문자 -D를 사용하면 강제로 브랜치를 삭제할 수 있습니다.

 

 

7. 리모트 브랜치를 삭제하는 방법

$ git push origin --delete 리모트브랜치이름

원격 브랜치를 삭제하려면 먼저 삭제 명령을 push 해야 합니다.

반응형

'고기 대신 SW 한점 > GIT' 카테고리의 다른 글

[git] Branch 브랜치 끝장내기 2  (0) 2022.10.20
[Git]Conflict(충돌) 해결하기  (0) 2022.10.07
[Git] 개념잡기 1 (시작하기)  (1) 2022.10.07
[Git]cherry-pick : 끝장내기  (0) 2022.10.06
SW version 관리  (0) 2022.09.28