커밋하면서 계속 코드를 짜다보면 갑자기 새로운 기능을 추가해야하는 경우가 있습니다.
그럴 때는 원본파일에 코드를 추가하고 커밋해도 되겠지만
혹시나 잘못해서 지금까지 잤던 프로그램이 망가지거나 그러면 큰일납니다.
그럴 걱정 없이 안전하게 새로운 기능을 추가하고 싶으면 복사본을 만들어 먼저 개발하는것도 나쁘지 않습니다.
git 안에선 branch 기능을 이용해서 복사본을 만들 수 있습니다.
branch만들기
이러면 프로젝트 사본이 하나 생성됩니다.
git branch 브랜치이름
방금 만든 브랜치로 이동하고 싶으면 아래의 명령어를 사용하면 됩니다.
git switch 브랜치이름
(다시 메인브렌치로 이동하고 싶으면 git switch main 하면 됩니다, 어떤 브랜치에 와있는지 까먹었으면 git status 입력)
coupon이라는 branch를 하나 만들어서 commit을 해보면 아래의 상황입니다.
main branch도 하나의 branch입니다.
coupon branch에서 작업한 내용은 원래 브랜치인 main branch에 아무런 영향이 없습니다.
branch와 commit 내역을 한눈에 그래프로 보고싶으면 다음 명령어 입력합니다.
git log --graph --oneline --all
아래와 같이 나오는데 HEAD는 현재 위치입니다.
branch합치기
그래서 branch에서 짰던 코드가 마음에 들면 원본코드가 있는
master 또는 main 브랜치에 합치면 됩니다.
브랜치를 합치는걸 전문용어로 merge라고 합니다.
그럼 브랜치에서 개발했던 내용을 main 브랜치에 더해줄 수 있습니다.
merge하고 싶으면
1. main/master 브랜치로 다시 이동하고
2. git merge 브랜치명 입력하면 합쳐집니다.
git switch main
git merge 브랜치명
merge를 하고나서 git log 해보면 그림으로 잘 알려줍니다.
주의사항
합칠 때 주의사항이 있습니다.
main 브랜치와 coupon 브랜치에서 같은 파일, 같은 줄을 수정했을 경우
merge conflict가 발생합니다.
둘 중 어떤 코드를 적용할지 고르면 되는데
<<<< / >>>> / ==== 이런거 다 지우고 원하는 코드만 남기면 됩니다.
어떤 코드를 남길지 결정했으면
git add 파일명
git commit -m '메시지'
를 입력하면 새로운 commit을 생성해주며 merge conflict 해결 + 브랜치 합치기 완료입니다.
정리
- 브랜치 생성 : git branch 브랜치명
- 브랜치 이동 : git switch 브랜치명
- 브랜치 합치기 : main/master 브랜치로 이동한 다음 git merge 브랜치명
- 브랜치마다 commit 내역을 그래프로 보고싶으면 : git log --graph --oneline --all
- 브랜치 합칠 때 conflict 발생하면 : 파일열어 수정하고 git add, git commit 하기
참고자료
https://codingapple.com/course/git-and-github/
'Git' 카테고리의 다른 글
Git Branch Switching, 협업순서,Commit 메시지 규칙 (0) | 2023.11.20 |
---|---|
Git push, clone, pull, pull request (0) | 2023.08.08 |
merge(3-way, fast-forward, squash, rebase) (0) | 2023.08.08 |
Git - add, commit (0) | 2023.08.07 |