본문 바로가기
programing/git

[ git ] vscode에서 브런치 머지하기 (2) -- git graph

by 궈능비 2022. 9. 1.
728x90
반응형

 

git graph 사용법은 아래의 글을 참고해주세요

 

2022.08.31 - [git] - [ git ] vscode에서 브런치 연동하기 - git graph

 

[ git ] vscode에서 브런치 연동하기 - git graph

vscode에서 브런치를 생성해보겠습니다 우선 extenshions에서 git graph를 깔아주세요 깔았으면 이제 자기 git으로 가서 브런치를 하나 작성해줍니다 브런치를 만드셨으면 코드를 눌러주세요 (초록버튼

kwon-eb.tistory.com

 

git graph에서 브런치 분기하는 방법은 아래의 글을 참고해주세요

2022.09.01 - [git] - [ git ] vscode에서 브런치 분기하기 -- git graph

 

[ git ] vscode에서 브런치 분기하기 -- git graph

vscode에서 git을 사용하는 방법은 밑의 블로그 글을 참고해주세요 2022.08.31 - [git] - [ git ] vscode에서 브런치 연동하기 - git graph [ git ] vscode에서 브런치 연동하기 - git graph vscode에서 브런치를..

kwon-eb.tistory.com

 

오늘은 브런치를 머지해보려고 합니다

 

머지해야 할 때 충돌이 날 수도 있고 안 날 수도 있습니다

 

아무래도 브런치를 분기한 뒤 오랫동안 머지하지 않았다면 파일 충돌이 날 가능성이 매우 높은 것 같습니다

 

이를 방지하기 위해 저는 케이스를 나눠서 한번 머지 작업을 해보려고 합니다

 

제가 생각하는 케이스는 다음과 같습니다


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

 

[ git ] vscode에서 브런치 머지하기 (1) -- git graph

git graph 사용법은 아래의 글을 참고해주세요 2022.08.31 - [git] - [ git ] vscode에서 브런치 연동하기 - git graph [ git ] vscode에서 브런치 연동하기 - git graph vscode에서 브런치를 생성해보겠습니다 우..

kwon-eb.tistory.com


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 파일을 보면 방금 커밋한 대로 반영이 되어있는 걸 볼 수 있습니다

 

 

 

728x90
반응형

댓글