🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

git branch

# Git Branch 실습 정리

## 1. 저장소 복제 (Clone)

```bash

# GitHub 저장소를 로컬로 복제

$ git clone https://github.com/Hannah2030-cell/new_gitStudy10.git

# 복제된 디렉터리로 이동

$ cd new_gitStudy10

```

## 2. 브랜치 조회

```bash

# 로컬 브랜치 목록 확인

$ git branch

develop # 표시는 현재 브랜치

# 원격 브랜치 목록 확인

$ git branch -r

origin/HEAD -> origin/develop

origin/develop

# 로컬과 원격 브랜치 모두 확인

$ git branch -a

* develop

remotes/origin/HEAD -> origin/develop

remotes/origin/develop

```

## 3. 브랜치 생성

```bash

# 새로운 브랜치 생성 (현재 브랜치에서 분기)

$ git branch main

$ git branch qa

# 생성 후 브랜치 목록 확인

$ git branch

* develop

main

qa

```

## 4. 브랜치 전환

```bash

# 다른 브랜치로 전환

$ git checkout main

Switched to branch 'main'

# 현재 브랜치 확인 (프롬프트에서도 확인 가능)

$ git branch

develop

* main # 현재 main 브랜치

# 다시 develop 브랜치로 전환

$ git checkout develop

Switched to branch 'develop'

```

## 5. 브랜치 삭제

```bash

# 로컬 브랜치 삭제

$ git branch -d main

Deleted branch main (was b29de65).

# 삭제 후 확인

$ git branch

* develop

qa

```

## 6. 원격 저장소에 브랜치 푸시

```bash

# 새로운 브랜치를 원격 저장소에 푸시

$ git push --set-upstream origin main

Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)

To https://github.com/Hannah2030-cell/new_gitStudy10.git

* [new branch] main -> main

branch 'main' set up to track 'origin/main'.

```

## 7. 원격 브랜치 삭제

```bash

# 원격 저장소의 브랜치 삭제

$ git push origin --delete main

To https://github.com/Hannah2030-cell/new_gitStudy10.git

- [deleted] main

# 삭제 후 원격 브랜치 확인

$ git branch -a

* develop

qa

remotes/origin/HEAD -> origin/develop

remotes/origin/develop

```

## 주요 Git Branch 명령어 정리

| 명령어 | 설명 |

|--------|------|

| git branch | 로컬 브랜치 목록 조회 |

| git branch -r | 원격 브랜치 목록 조회 |

| git branch -a | 로컬/원격 브랜치 모두 조회 |

| git branch [브랜치명] | 새 브랜치 생성 |

| git branch -d [브랜치명] | 로컬 브랜치 삭제 |

| git checkout [브랜치명] | 브랜치 전환 |

| git push --set-upstream origin [브랜치명] | 새 브랜치를 원격에 푸시 |

| git push origin --delete [브랜치명] | 원격 브랜치 삭제 |

 

새로운 브랜치로 체크아웃하는 방법

새로운 브랜치 생성과 동시에 해당 브랜치로 이동하는 명령어를 실행하려면 다음과 같이 입력합니다.

git checkout -b NEW-BRANCH-NAME

이 명령어를 실행하면 바로 새로운 브랜치로 전환됩니다.

 

## 실습에서 배운 점

1. 브랜치 생성과 전환: 로컬에서 브랜치를 생성하고 자유롭게 전환할 수 있습니다.

2. 원격 저장소 연동: 로컬 브랜치를 원격 저장소에 푸시하고 삭제할 수 있습니다.

3. 브랜치 관리: 불필요한 브랜치는 로컬과 원격에서 모두 삭제하여 정리할 수 있습니다.

4. 브랜치 상태 확인: 다양한 옵션으로 브랜치 상태를 확인할 수 있습니다.

이러한 브랜치 관리 기능을 통해 효율적인 협업과 버전 관리가 가능합니다.

 

코딩애플 무료 github 강의에서 퍼온 글-------------------------------------------------------------------------

rebase and merge 

 

브랜치를 rebase 하고 나서 merge 하는 짓거리도 가능합니다. 

일단 rebase가 뭐냐면 

 

 

 

 

rebase는 브랜치의 시작점을 다른 commit으로 옮겨주는 행위입니다. 

1. rebase를 이용해서 신규브랜치의 시작점을 main 브랜치 최근 commit으로 옮긴 다음 

2. fast-forward merge하는 것입니다. 

이런 식으로도 브랜치 합치기가 가능하겠군요. 

 

왜 이따구로 하냐고요?

1. 3-way merge 말고 강제로 fast-forward 하고 싶을 때

2. 브랜치 그딴거 필요없이도 코드 잘짜는 고수같은 느낌을 주고 싶을 때

3. commit 내역을 한 줄로 계속 이어서 남기고 싶을 때

그러고 싶으면 일반 3-way merge 대신 rebase & merge 해도 됩니다.

 

 

그래서 실제로 rebase and merge 하고 싶으면 

1. 새로운 브랜치로 먼저 이동해서

2. git rebase main 하면 됩니다. 

3. 그럼 브랜치가 main 브랜치 끝으로 이동하는데 그걸 fast-forward merge 하면 됩니다. 

 

 

git switch 새로운브랜치
git rebase main

git switch main
git merge 새로운브랜치

차례로 입력하면 rebase 끝입니다. 

rebase & merge를 한 줄로 쉽게 비유하자면 강제 fast-forward merge입니다. 

 

직접 새로운 브랜치 만들고 commit 몇 번 하고 rebase 해보십시오.  

당연히 main 말고 다른 브랜치끼리도 가능합니다. 

 

 

물론 단점도 있는데 

브랜치끼리 차이가 너무 많은 경우 rebase하면 충돌이 많이 발생할 수 있는데 그거 하나하나 해결하기 귀찮습니다. 

댓글을 작성해보세요.

채널톡 아이콘