Akashic Records

Git 브랜치(branch)와 병합(merge) 본문

Git

Git 브랜치(branch)와 병합(merge)

Andrew's Akashic Records 2023. 3. 25. 22:35
728x90

Git에서 브랜치(branch)는 독립적인 작업 공간을 생성하는 것으로, 프로젝트의 다양한 기능 개발이나 버그 수정 등을 별도로 진행할 수 있게 합니다. 이렇게 생성된 브랜치는 원래의 코드와 변경 사항이 격리되어 있어, 다른 브랜치에서의 작업이 서로 영향을 주지 않습니다. 작업이 완료되면 브랜치를 병합(merge)하여 하나의 브랜치로 통합할 수 있습니다.

병합(merge)은 두 개의 브랜치를 하나로 합치는 과정입니다. 병합 시, Git은 두 브랜치의 변경 사항을 비교하여 자동으로 적용합니다. 충돌이 발생하면 수동으로 해결해야 합니다.

예시 코드:

  • 저장소 초기화 및 기본 브랜치(main)에 파일 추가
$ git init
$ echo "Hello, World!" > hello.txt
$ git add hello.txt
$ git commit -m "Add hello.txt"

 

  • 새로운 브랜치(feature-branch) 생성 및 이동
$ git checkout -b feature-branch

 

  • 새로운 브랜치에서 파일 수정
$ echo "Hello, Git!" > hello.txt
$ git add hello.txt
$ git commit -m "Update hello.txt in feature-branch"

 

  • main 브랜치로 이동 및 수정 사항 병합
$ git checkout main
$ git merge feature-branch

 

  • 병합된 결과 확인
$ git log --oneline --graph --all
*   2f2d17e (HEAD -> main) Merge branch 'feature-branch'
|\
| * 7a6d1f3 (feature-branch) Update hello.txt in feature-branch
|/
* 9d6e2f6 Add hello.txt

위 예시를 통해 브랜치를 생성하고 이동하여 작업한 후, 변경 사항을 병합하는 과정을 확인할 수 있습니다. 이렇게 Git의 브랜치와 병합 기능을 사용하여 독립적인 작업 공간에서 코드를 수정하고, 완료된 작업을 통합할 수 있습니다.

 

브랜치 관리와 관련된 몇 가지 추가적인 Git 명령어를 소개하겠습니다.

  • git branch: 현재 저장소에 있는 모든 브랜치 목록을 출력합니다. 현재 활성화된 브랜치 앞에 별표(*)가 표시됩니다.
$ git branch
* main
  feature-branch

 

  • git branch <new-branch>: 새로운 브랜치를 생성합니다. 이 명령어는 브랜치만 생성하고, 브랜치 이동은 하지 않습니다.
$ git branch another-feature
$ git branch
* main
  feature-branch
  another-feature

 

  • git branch -d <branch-to-delete>: 브랜치를 삭제합니다. 이미 병합된 브랜치만 삭제할 수 있습니다.
$ git branch -d feature-branch
Deleted branch feature-branch (was 7a6d1f3).

 

  • git branch -D <branch-to-delete>: 브랜치를 강제로 삭제합니다. 아직 병합되지 않은 변경 사항이 있는 브랜치도 삭제할 수 있습니다. 주의해서 사용하세요.
$ git branch -D another-feature
Deleted branch another-feature (was 9d6e2f6).

 

  • git fetch: 원격 저장소의 변경 사항을 로컬 저장소로 가져옵니다. 이 명령어는 변경 사항을 로컬 작업 트리에 병합하지 않고, 브랜치 정보만 가져옵니다.
$ git fetch origin

 

  • git pull: 원격 저장소의 변경 사항을 가져와 로컬 작업 트리와 병합합니다. 이 명령어는 git fetch와 git merge를 동시에 수행합니다.
$ git pull origin main

 

  • git push: 로컬 저장소의 변경 사항을 원격 저장소에 푸시합니다. 이를 통해 다른 사용자와 협업하거나, 변경 사항을 원격 저장소에 백업할 수 있습니다.
$ git push origin main

 

이러한 명령어들을 사용하면 Git 브랜치를 관리하고, 원격 저장소와의 동기화를 유지하면서 작업을 진행할 수 있습니다. 이 과정을 통해 코드의 변경 이력을 추적하고 여러 개발자와 협업하며 프로젝트를 관리할 수 있습니다.

728x90

'Git' 카테고리의 다른 글

Git 브랜치 전략(Git Flow)  (0) 2023.03.25
Git 원격 리포지토리  (0) 2023.03.25
Git 상태 조회 및 변경 내용 확인  (0) 2023.03.25
Git 기본 명령어  (0) 2023.03.25
Git 설치 및 설정  (0) 2023.03.25
Comments