본문 바로가기
멋쟁이사자처럼 동아리/Git

섹션 3 git 차원 넘나들기 branch "인프런" -PlusUltraCode-

by PlusUltraCode 2024. 7. 12.

섹션 3: Branch

1. Git Branch 생성 방법

새로운 브랜치를 생성하려면 다음 명령어를 사용합니다:

 
$ git branch add-coach

현재 존재하는 브랜치 목록을 확인하려면 다음과 같이 입력합니다:

 
$ git branch

2. Branch로 이동하기

특정 브랜치로 이동하려면 다음 명령어를 사용합니다:

 
$ git switch add-coach

브랜치를 생성하면서 동시에 이동하려면 -c 옵션을 사용합니다:

 
$ git switch -c new-teams

3. Branch 이름 변경 및 삭제

브랜치 이름을 변경하려면 -m 옵션을 사용합니다:

 
$ git branch -m 동호 지원

위 명령어는 "동호" 브랜치의 이름을 "지원"으로 변경합니다.

이제 "지원" 브랜치를 삭제해보겠습니다:

 
$ git branch -d 지원

4. Git 로그와 트리 확인

모든 브랜치의 로그와 트리를 확인하려면 다음 명령어를 사용합니다:

 
$ git log --all --decorate --oneline --graph

5. Branch 합치기: Merge와 Rebase

Merge

Merge는 브랜치의 과거 기록을 보존하면서 합치는 방법입니다. 다음과 같이 사용합니다:

먼저 주된 브랜치로 이동한 후:

 
$ git switch main

합칠 브랜치를 merge합니다:

$ git merge 이름

Merge는 reset이 가능합니다.

Rebase

Rebase는 브랜치의 기록을 깔끔하게 정리하여 메인 브랜치에 합치는 방법입니다. 협업 시에는 Rebase 사용을 자제하는 것이 좋습니다. Rebase 과정은 다음과 같습니다:

먼저 합칠 브랜치로 이동한 후:

 
$ git switch new-teams

다음 명령어로 Rebase를 실행합니다:

 
$ git rebase main

이제 main 브랜치로 이동하여:

 
$ git switch main

다시 merge를 실행합니다:

 
$ git merge new-teams

6. 충돌 해결

Merge 충돌 해결

충돌이 발생한 상황에서 다음과 같이 Merge를 시도합니다:

 
$ git switch main $ git merge conflict-1

충돌 메시지가 나타나면 파일을 수정한 후:

 
$ git add . $ git merge --continue

만약 충돌 해결을 원치 않으면 다음 명령어로 Merge를 취소할 수 있습니다:

 
$ git merge --abort

Rebase 충돌 해결

Rebase 중 충돌이 발생한 경우 다음과 같이 진행합니다:

 
$ git switch conflict-2 $ git rebase main

충돌 메시지가 나타나면 파일을 수정한 후:

 
$ git add . $ git rebase --continue

충돌이 모두 해결되면 main 브랜치로 돌아가서:

 
$ git switch main $ git merge conflict-2

이후 불필요한 브랜치를 삭제합니다:

 
$ git branch -d conflict-1 $ git branch -d conflict-2

 

Git Branch 섹션 문제

1. Git Branch 생성 및 목록 확인

1.1. 새로운 브랜치 feature-login을 생성하는 명령어는 무엇인가요?

 
$ ________

1.2. 현재 존재하는 브랜치 목록을 확인하는 명령어는 무엇인가요?

 
$ ________

2. Branch로 이동하기

2.1. feature-login 브랜치로 이동하는 명령어는 무엇인가요?

 
$ ________

2.2. 브랜치를 생성하면서 동시에 feature-payment 브랜치로 이동하는 명령어는 무엇인가요?

 
$ ________

3. Branch 이름 변경 및 삭제

3.1. feature-login 브랜치의 이름을 feature-authentication으로 변경하는 명령어는 무엇인가요?

 
$ ________

3.2. feature-authentication 브랜치를 삭제하는 명령어는 무엇인가요?

 
$ ________

4. Git 로그와 트리 확인

4.1. 모든 브랜치의 로그와 트리를 한 줄로 요약하여 확인하는 명령어는 무엇인가요?

 
$ ________

5. Branch 합치기: Merge와 Rebase

5.1. main 브랜치로 이동한 후, feature-payment 브랜치를 merge하는 명령어는 무엇인가요?

 
$ ________ $ ________

5.2. feature-ui 브랜치로 이동한 후, main 브랜치를 rebase하는 명령어는 무엇인가요?

 
$ ________ $ ________

5.3. rebase 후 main 브랜치로 이동하여 feature-ui 브랜치를 merge하는 명령어는 무엇인가요?

 
$ ________ $ ________

6. 충돌 해결

6.1. main 브랜치로 이동하여 conflict-feature 브랜치를 merge 시도 시 충돌이 발생했습니다. 충돌을 해결하기 위한 기본적인 절차는 무엇인가요? (명령어 순서대로 작성하세요)

 
$ ________ $ ________ $ ________ $ ________

6.2. conflict-feature 브랜치로 이동하여 main 브랜치를 rebase 시도 시 충돌이 발생했습니다. 충돌을 해결하기 위한 기본적인 절차는 무엇인가요? (명령어 순서대로 작성하세요)

 
$ ________ $ ________ $ ________ $ ________ $ ________

정답

1. Git Branch 생성 및 목록 확인

1.1. 새로운 브랜치 feature-login을 생성하는 명령어는 무엇인가요?

 
$ git branch feature-login

1.2. 현재 존재하는 브랜치 목록을 확인하는 명령어는 무엇인가요?

 
$ git branch

2. Branch로 이동하기

2.1. feature-login 브랜치로 이동하는 명령어는 무엇인가요?

 
$ git switch feature-login

2.2. 브랜치를 생성하면서 동시에 feature-payment 브랜치로 이동하는 명령어는 무엇인가요?

 
$ git switch -c feature-payment

3. Branch 이름 변경 및 삭제

3.1. feature-login 브랜치의 이름을 feature-authentication으로 변경하는 명령어는 무엇인가요?

 
$ git branch -m feature-login feature-authentication

3.2. feature-authentication 브랜치를 삭제하는 명령어는 무엇인가요?

 
$ git branch -d feature-authentication

4. Git 로그와 트리 확인

4.1. 모든 브랜치의 로그와 트리를 한 줄로 요약하여 확인하는 명령어는 무엇인가요?

 
$ git log --all --decorate --oneline --graph

5. Branch 합치기: Merge와 Rebase

5.1. main 브랜치로 이동한 후, feature-payment 브랜치를 merge하는 명령어는 무엇인가요?

 
$ git switch main $ git merge feature-payment

5.2. feature-ui 브랜치로 이동한 후, main 브랜치를 rebase하는 명령어는 무엇인가요?

 
$ git switch feature-ui $ git rebase main

5.3. rebase 후 main 브랜치로 이동하여 feature-ui 브랜치를 merge하는 명령어는 무엇인가요?

 
$ git switch main $ git merge feature-ui

6. 충돌 해결

6.1. main 브랜치로 이동하여 conflict-feature 브랜치를 merge 시도 시 충돌이 발생했습니다. 충돌을 해결하기 위한 기본적인 절차는 무엇인가요? (명령어 순서대로 작성하세요)

 
$ git switch main
$ git merge conflict-feature
// 충돌 해결 후 $ git add .
$ git merge --continue

6.2. conflict-feature 브랜치로 이동하여 main 브랜치를 rebase 시도 시 충돌이 발생했습니다. 충돌을 해결하기 위한 기본적인 절차는 무엇인가요? (명령어 순서대로 작성하세요)

 
$ git switch conflict-feature
$ git rebase main // 충돌 해결 후
$ git add .
$ git rebase --continue // 추가적인 충돌이 없을 때까지 반복
$ git switch main
$ git merge conflict-feature

이 문제들을 통해 Git Branch 관련 명령어와 개념을 복습하고 실습해보세요!