git graph 사용법은 아래의 글을 참고해주세요
2022.08.31 - [git] - [ git ] vscode에서 브런치 연동하기 - git graph
git graph에서 브런치 분기하는 방법은 아래의 글을 참고해주세요
2022.09.01 - [git] - [ git ] vscode에서 브런치 분기하기 -- git graph
오늘은 브런치를 머지해보려고 합니다
머지해야 할 때 충돌이 날 수도 있고 안 날 수도 있습니다
아무래도 브런치를 분기한 뒤 오랫동안 머지하지 않았다면 파일 충돌이 날 가능성이 매우 높은 것 같습니다
이를 방지하기 위해 저는 케이스를 나눠서 한번 머지 작업을 해보려고 합니다
제가 생각하는 케이스는 다음과 같습니다
case 1.
main은 수정이 없는데 sub에 수정이 있을 경우
or
main도 수정이 있고 sub도 수정이 있지만 서로 다른 파일을 수정했을 경우
case 2.
main, sub가 같은 파일을 수정했을 경우 - 한 개 파일
case 3.
main, sub가 같은 파일을 수정했을 경우 - 여러 파일 및 폴더
case 1, 2는 쉽지만 case 3이 조금 까다롭습니다
순서대로 한번 머지 작업을 해보겠습니다
main : main
sub : test_git_1
브런치라고 생각해주시면 됩니다
case 1 [ main은 수정이 없는데 sub에 수정이 있을 경우 ]
+ [ main도 수정이 있고 sub도 수정이 있지만 서로 다른 파일을 수정했을 경우 ]
2022.09.01 - [git] - [ git ] vscode에서 브런치 머지하기 (1) -- git graph
case 2 [ main, sub가 같은 파일을 수정했을 경우 - 한 개 파일 ]
case 1 브런치에서 이어서 작업하겠습니다
현재 main 브런치에는 a.py, test_git_1.py가 있고
test_git_1 브런치에는 a.py, test_git_1.py가 있습니다
저는 main 브런치에 있는 test_git_1.py를 수정하겠습니다
우선 원본입니다
# test_git_one.py
def test_git_one():
print("test_git_one")
if __name__ == "__main__":
test_git_one()
수정본입니다
# test_git_one.py
def test_git_one():
print("test_git_one")
def test_main():
print("test_git_one")
if __name__ == "__main__":
test_git_one()
test_main()
변경사항을 그대로 커밋합니다
이제 test_git_1 브런치로 이동합니다
이동 방법은 이제 생략하겠습니다
test_git_1.py를 수정합니다
원본입니다
# test_git_one.py
def test_git_one():
print("test_git_one")
if __name__ == "__main__":
test_git_one()
수정본입니다
# test_git_one.py
def test_git_one():
print("test_git_one")
def test_git_one_v2():
print("test_git_one_v2")
if __name__ == "__main__":
test_git_one()
test_git_one_v2()
커밋하겠습니다
방금 커밋을 했습니다
아까랑 다르게 main브런치 쪽이 분홍색으로 나왔네요
이건 브런치가 다르다는 걸 표시하기때문에 에러가 아닙니다
괜찮습니다
이제 머지 준비는 다 끝났습니다
case 1이랑 똑같이 test_git_1 -> main에 머지해보겠습니다
우선 main브런치로 이동합니다
case 1번에서 했던것처럼 merge branch를 누르고 origin/test_git_1을 선택합니다
그러면 case 1이랑 다르게
이런식으로 merge changes에 겹친 파일이 표시됩니다
test_git_1.py 파일을 클릭해보겠습니다
충돌이 난 파일을 알려주는데요
상단 왼쪽은 test_git_1 브런치의 파일이고요 오른쪽은 main 브런치의 파일입니다
그리고 하단은 우리가 머지한 결과 파일입니다
이제 머지를 진행해보겠습니다
저는 test_git_1 브런치의 함수 test_git_one_v2 를 살리고 싶습니다
그러면 test_git_1 브런치 파일의 7번 라인으로 가서
accept를 눌러줍니다
7번 라인을 클릭하면 됩니다
그러면 하단의 result에 바로 반영이 됩니다
똑같이 test_git_1 브런치의 13번 라인도 반영해줍니다
반영됐습니다
이제 main 브런치도 반영해볼게요
저는 main브런치의 test_main 함수를 살리고 싶습니다
똑같이 클릭해볼게요
이제 14line까지 클릭해볼게요
같은 라인이라 덮어쓰기가 될 줄 아셨겠지만 밑에 새롭게 한 줄이 추가됩니다
이제 머지 작업이 끝났습니다
accept merge 버튼을 눌러볼게요
그러면 이렇게 준비가 된걸 확인할 수 있습니다
커밋하겠습니다
커밋한 뒤에 main브런치의 test_git_1 파일을 보면 방금 커밋한 대로 반영이 되어있는 걸 볼 수 있습니다
'programing > git' 카테고리의 다른 글
[ git ] vscode에서 커밋 취소하는 방법 - git revert (0) | 2022.09.03 |
---|---|
[ git ] vscode에서 브런치 머지하기 (3) -- git graph (0) | 2022.09.01 |
[ git ] vscode에서 브런치 머지하기 (1) -- git graph (0) | 2022.09.01 |
[ git ] vscode에서 브런치 분기하기 -- git graph (0) | 2022.09.01 |
[ git ] vscode에서 브런치 연동하기 - git graph (0) | 2022.08.31 |
댓글