main branch 가 default로 생성된다.
main branch는 항상 안정화된 상태여야기 때문에, 다른 브랜치를 생성해서 merge하는 과정으로 개발해야한다.
branch 목록보기
git branch
위에 설명했듯이 git 은 기본적으로 main이라는 branch가 default로 생성되게 됩니다.
그렇기 때문에 git branch로 확인해보면 main이라는 branch가 존재하는 것을 확인할 수 있습니다.
branch 생성하기
git branch <branch 명>
생성하고 싶은 branch명을 뒤에 적어주게되면, 새로운 branch를 생성할 수 있습니다.
develop이라는 branch를 생성하고 목록을 확인해보면, develop branch가 추가된 것을 확인할 수 있습니다.
사진을 보면, main branch앞에 "*" 가 붙어있는 것을 볼 수 있는데 현재 가르키고 있는 branch가 main이기 때문입니다.
그러면 develop branch로 이동하기 위해서는
branch 변경하기
git checkout <branch 명>
git checkout 명령어를 이용하면, develop branch가 가르켜지는 것을 확인할 수 있습니다.
working dir에 있는 파일하나의 내용을 위와같이 변경하고 add -> commit 을 진행합니다.
그리고, git log를 통해서 commit 기록을 확인해보면,
위의 사진을 보면, 새롭게 Add moduel [ Sub ]가 추가되고 HEAD -> develop인 것을 볼 수 있습니다.
즉 develop branch에서 새롭게 추가한 커밋이라는 것 입니다.
그러면, 이번에는 다시 main branch에 돌아와서 위의 변경된 내용을 합쳐보겠습니다.
git checkout main
그러기 위해서 다시 main branch로 이동한 뒤
merge 병합하기
git merge develop
git merge 명령어를 이용해서 develop branch의 내용을 병합합니다.
그리고 다시 git log를 통해서 확인해보면,
Add module [ Sub ]의 기록에 HEAD -> main, develop 으로 변경된 것을 확인 할 수 있습니다.
하지만, 아직은 remote repo도 적용된 것은 아니니 git push를 통해서 remote에도 동기화를 합니다.
branch 삭제하기
develop branch의 역할이 끝났으니, 삭제를 해줍니다.
git branch -d <branch 명>
branch간의 충돌이 있을 경우!!
git branch develop
git checkout develop
우선 이번에도 develop이라는 branch를 생성하고, 이동합니다.
그런 다음 working dir에 있는 파일을 위와같이 변경합니다.
변경 사항을 add와 commit을 진행하고
git log 를 확인해보면,
위에서 진행한것 그대로 commit이 develop branch로 적용된 것을 확인할 수 있습니다.
이번에는 main branch로 돌아가서
git checkout main
working dir에 파일을 위와같은 형태로 저장해서
add 와 commit 을 진행합니다.
그리고 git log로 목록을 확인해보면
main brnach의 commit 내용은 확인이 되지만, develop branch에서 적용한 commit 은 확인이 안되는 것을 볼 수 있습니다.
현재는, develop branch와 main branch의 파일의 내용이 전혀 다른 상태고, commit 도 다른 상태입니다.
이 상태에서 merge를 진행하게 되면,
위와같은 에러 메세지로, merge를 진행할 수 없다고 나오게됩니다.
working dir에 있는 파일을 확인해보면
사진처럼, 두 branch의 다른 부분을 표시해주고 있습니다.
파일을 위와같이 변경하고 저장을해서 다시 add와 commit 을 진행합니다.
그리고 git log로 목록을 확인하면
이제는 develop branch에서 commit한 내용과 main에서 추가한 commit이 잘 보이게 됩니다.
그러면 remote repo로 push를 진행하고
develop branch는 삭제합니다.
'IT 공부 > git' 카테고리의 다른 글
git - working directory, staging area, git repo 영역에 대해서 (0) | 2023.11.10 |
---|---|
[ Git ] git archive이용해서, 소스코드 압축하기 (0) | 2022.01.20 |
[ Git ] 원하는 Commit으로 돌아가고 싶은 경우 (soft와 hard) (0) | 2022.01.18 |
[ Git ] 기본적인 동작원리(working Dir / Staging Area / Local repo / remote repo) (0) | 2022.01.17 |
[ Git ] untracked content 에러 해결 (0) | 2021.12.30 |