반응형
https://www.coursera.org/learn/introduction-git-github
branch
- 특정 커밋을 가리키는 포인터, 각 브랜치는 프로젝트의 개발 히스토리에서 최신 커밋을 나타낸다.
- master branch는 프로젝트의 안정된 상태를 나타내며, 새로운 기능을 개발할 때마다 새로운 브랜치를 생성하여 작업한다.
- 각 브랜치에서의 작업은 마스터 브랜치나 다른 브랜치에 영향을 주지 않고 진행될 수 있다.
git branch
- 브랜치를 나열하고 생성하거나 삭제할 수 있다.
브랜치 나열
git branch
새로운 브랜치 생성
git branch [새로운 branch 이름]
브랜치 삭제
git branch -d [브런치 이름]
git checkout
브랜치 변경하기
git checkout [브랜치 이름]
브랜치 생성 & 브랜치 전환
git checkout -b [새로운 브랜치 이름]
git merge
개발이 완료되면 별도로 생성한 브랜치를 기존 메인 코드의 trunk에 병합한디ㅏ.
e.g) even-better-feature 브랜치를 master 브랜치로 병합
git merge even-better-feature
빠른 전진 병합(Fast Forward Merge)
- 브랜치 병합 시 모든 커밋이 병합 대상 브랜치에 이미 포함되어 있으면, Git은 빠른 전진 병합을 수행한다.
- 이 경우, 브랜치의 커밋 히스토리가 갈라지지 않았기 때문에 실제로는 새로운 병합 커밋을 만들 필요가 없고 단순히 브랜치 포인터를 업데이트 한다.
삼방향 병합(Three-way Merge)
- 브랜치들의 히스토리가 어느 시점에서 갈라졌다면, Git은 삼방향 병합을 수행한다.
- 이 경우, 각 브랜치의 가장 최근 공통 조상(공통 커밋)을 기준으로 두 브랜치의 스냅샷을 결합한다.
- 만일 동일 파일의 동일 부분에서 변경이 발생했을 경우, Git은 이를 충돌(conflict)으로 처리하며, 이후 충돌 해결 과정을 거쳐야한다.
충돌
- 충돌이 발생했을 때는 Git이 자동으로 해결하지 않고, 수동으로 충돌을 해결해야 한다.
- 사용자가 결정하도록 하며, 최종적으로 수동으로 해결한 후에는 다시 커밋하여 병합을 완료한다.
git merge --abort
병합 과정에서 발생한 충돌을 해결하지 않고 병합을 포기하고 이전 상태로 되돌리는 명령어
- 실행하면 현재까지의 변경사항이 모두 사라지므로 주의해서 사용해야 한다.
반응형
'Git&GitHub' 카테고리의 다른 글
[Github Error] The requested URL returned error: 403 (0) | 2024.10.03 |
---|---|
[Git] Git Commands (0) | 2024.07.09 |
Introduction to Git and GitHub - 모듈 2(Undoing Things) (0) | 2024.06.24 |
Introduction to Git and GitHub - 모듈 2(Advanced Git interaction) (0) | 2024.06.24 |
Introduction to Git and GitHub - 모듈 1(Using Git) (0) | 2024.06.23 |