Branch의 개념을 알아보기 위해 다음과 같이 chapter_one.txt 파일을 만들고 영어 문장을 추가해보자.
우리는 현재 결말을 두고 고민하고 있다고 가정하자.(주인공이 죽는 결말과 사는 결말)
Branch는 main 또는 master 브랜치의 마지막 commit 으로부터 다른 타임라인을 가지게 될 부분이다. 각각의 브랜치는 다른 브랜치의 영향을 받지 않으므로 여러 작업을 동시에 진행할 수 있다!!
위에 언급한 예시를 통해 이 개념이 무슨 말인가 알아보자.
현재 우리는 main branch에 있는 상태이다.
이제 우리는 main branch에서 나와 main branch의 모든 history를 가지고 새로운 branch로 이동하려고 한다.(main branch에는 엔딩이 없는 chapter_one.txt 파일이 commit 되어있는 상태로 만든다.)
이때, 위의 문장의 끝나고 +문장이 2줄이 더 생성된 것 처럼 Visual studio code에서 chapter_one.txt 파일이 끝난 후 엔터를쳐서 줄을 좀 띄워야 나중에 conflict 오류가 생기지 않는다!!!!
sad-ending 이라는 branch를 하나 생성한다.
Current branch 가 sad-ending branch로 바뀌었고, 이 branch는 main branch의 마지막 commit부터 시작하는 branch이므로 엔딩이 없는 chapter_one.txt부터 새로 시작하는 branch인 것이다!!
다음과 같이 주인공이 죽는 결말을 chapter_one.txt에 추가한 후 sad-ending brance에 commit 해보자.
그러면 현재 main-branch에는 결말이 없는 상황이지만 우리가 현재 있는 sad-ending branch에는 결말이 포함된 commit이 history에 포함되어있다.
놀라운 점은 다시 main-branch로 돌아가면 sad-ending branch일 때 Visual Studio Code에 있는 chapter_one.txt 파일에 있었던 결말 부분이 자동으로 사라지게된다!! 또 다시 sad-ending branch로 돌아가면 결말 부분이 다시 자동으로 보인다.
이제 주인공이 사는 결말도 새로운 branch에서 작업해보자.
결말이 없는 main-branch로 돌아와서 happy-ending branch를 생성한다.
이 branch 또한 초기의 sad-ending branch와 마찬가지로 결말이 없는 파일이 시작점이 된다.
위와 같이 새로운 결말을 추가해주고
commit 해주면
다음과 같이 sad-ending branch와는 다른 결말이 happy-ending branch에 들어가게 된다!!!
이 때 위처럼 전체적인 본문에서 수정사항이 생겼다고 가정하자.
위의 변경사항을 main에 commit 해보면 sad-ending 과 happy-ending branch에는 이 변화가 적용이 안된 것을 확인 할 수 있다.
이 때 Branch 로 들어가면 update from main이라는 옵션이 있는데 이를 클릭하면 각각의 다른 branch에도 main branch에서의 변화가 적용하게 된다!!
그 이후 우리는 이야기의 결말로 happy ending을 결정했다고 가정해보자.
이제 우리는 happy-ending branch에서의 과정을 main branch로 가져와야 한다!!
이를 위해 main-branch로 넘어간 후
Branch의 Merge into Current Branch를 클릭한 후
happy-ending branch를 선택한 후 버튼을 누르게 되면 main-branch에 happy-ending branch의 내용이 합쳐지게 된다!! 이제 main-branch 에는 happy-ending 결말이 추가되었다!!
※ Conflict: 같은 줄을 변경하려고 하면 충돌이 발생한다!!
위와 같이 happy branch를 하나 생성해 주고 happy branch 에서는 You를 I로, main branch 에서는 Your를 He로 바꿔준 뒤 happy branch와 main branch를 merge 하려고 하면??
다음과 같이 conflict 경고가 뜨게된다!!
버튼을 누르게 되면
다음과 같은 창이 뜨게 되고 Visual Studio Code에 가 보면
다음과 같이 main-branch 에서의 변경사항과 happy-branch 에서의 변경사항이 둘 다 뜨게 된다.
만약 happy-branch에서의 변경이 더 마음에 들면 happy-branch에서의 내용만 남겨두고 나머지는 다 지워주면
Conflict가 해결되게 된다!! 그 후 merge를 진행하면 오류가 없다~~!!
'Git&Github' 카테고리의 다른 글
Origin & Upstream & Issues 란? (0) | 2022.09.05 |
---|---|
Forking & Cloning 이란? (0) | 2022.09.04 |
Commit & Area 란? (0) | 2022.08.31 |
Git & Github & Github Desktop 란? (0) | 2022.08.30 |
Requirements (0) | 2022.08.29 |