기술노트/깃허브

충돌 방지

반응형

SourceTree에서 pull에 숫자가 떠있는 경우가 있다. 

 

 

주로 여러사람과 협업할 때 생겨나는 현상이고, 혼자서 작업하는 경우 이런 현상이 생기는 원인은 회사 컴퓨터에서 작업하고, 집에 와서 집 컴퓨터를 켰을 때 이런 현상이 생긴다. 이럴때 당황하지 말고 pull을 눌러주면 된다.

회사에서 수정한 파일이 집에 없기 때문에 그렇다.

 

merge가 되었다면 추가했던 ver2.0 ver3.0 과 같은 branch는 삭제해도 괜찮다.

 

근데 pull할 때도 충돌이 날 수 있다. 

 

충돌은 자연스러운 현상이므로 겁먹지 않아도 된다.

 

충돌의 예시를 들기위해 브랜치를 만들어보겠다.

 

main에다가 브랜치를 만든다. 

 

confl을 checkout하고 이렇게 내용을 추가했다. 

 

 

되도록 이렇게 한줄 띄고 저장해주는 것이 좋다.

 

스테이지에 올려주고 커밋해주자.

 

 

 

그럼 이렇게 나온다. 

main을 checkout하고 main을 더블클릭하면 이전 상태로 되돌아온다. 

 

 

 

 

 

이렇게 다른 내용을 써보자. 

 

 

스테이지에 올리고 커밋해주자. 

 

 

 

 

 

main을 checkout 한 상태에서 confl을 클릭하고 오른쪽마우스를 클릭하여 병합하면 

 

 

 

바로 이렇게 충돌이 떠버린다. 

 

충돌이 나면 느낌표가 뜨면서 

이 파일이 충돌난 파일이다.  라고 알려준다.

그러고 다시 python을 켜면 

 

 

 

Head는 지금 현재 내꺼고, confl이 내꺼와 충돌이 난 다른 브랜치이다. 

 

이 내용을 다 넣고싶으면 

 

요런식으로 해준다.  그리고 저장한다. 

이 방법이 수동으로 변경해주는 방법이 있다. 확장자명에 따라 프로그램은 다르니,

.html이면 html을 수정할 수 있는 editor로, .c 이면 C언어를 수정할 수 있는 editor에서 수동으로 변경하는 것이다.

이정도는 모르면 안된다.

 

근데 이렇게 예시를 든거는 아주 간단한 예시로 충돌을 보여줬지만 실제 실무에서는 코드가 너무 길다.

충돌 해결 툴을 따로 사용해줘도 된다. 

p4merge 라는 충돌해결 툴도 있다고 한다. 

 

아무튼 이렇게 수정해준 것을 스테이지에 올리고 커밋한다.

 

이거는 우리가 머라고 쓰지 않고 그냥 커밋누르면된다. 커밋메세지가 뜬 것이므로 우리가 건드리는 것이 아니다.

 

 

자 이렇게 커밋이 된 것을 볼수 있다. 

 

만약 겁먹지말기 추가 부분으로 main을 되돌리고 싶다면 

main을 checkout 한 상태에서

겁먹지 말기 추가 부분을 클릭하고 

 

 

이 커밋까지 현재 브랜치를 초기화 버튼을 누른다. 

 

이렇게 뜰텐데 아직 확인 누르지 말고

 

hard 모드로 바꿔준다. 그리고 확인.

 

 

 

 

 

 

 

 

이렇게 main이 겁먹지 말기 추가로 되돌아간 것을 볼 수 있다. 

 

이번엔 수동 merge를 해보겠다. 

 

이 상태에서 confl을 클릭하고 오른쪽마우스 눌러서 병합을 누른다.

 

 

바로 이렇게 충돌난다. 

 

근데 우리가 confl 하던 중이었다고 가정하고 해보자.

 

스테이지에 올라가지 않은 파일에 ! 뜨는 충돌났던 이 파일을 클릭하고

 

오른쪽 마우스 클릭

 

 

'내 것'을 이용해 해결은 main을 checkout한 상태라면 main을 의미하며

'저장소' 것을 사용하여 해결은 main을 checkout한 상태라면 confl을 의미한다. 

confl을 가정한다고 햇으니 '저장소' 것을 사용하여 해결하자. 

 

 

 

그러면 이렇게 뜨는데 확인을 눌러준다. 

 

그러면 자동으로 스테이지에 올라가게 되고 

 

아까 confl 상태였던 충돌에 쫄지 마세요 문구로 바뀐 것도 볼 수 있다. 

아까와 똑같이 커밋해준다. 

 

 

이거는 수정하지 말라고 계속 언급했었다.  아무튼 커밋하면

 

 

이렇게 커밋된 것을 볼 수 있다. 

 

 

그리고 push 해주면 된다. 

'기술노트 > 깃허브' 카테고리의 다른 글

branch로 commit 되돌리기  (0) 2021.01.15
reset으로 commit 되돌리기  (0) 2021.01.14
병합(2)  (0) 2021.01.12
병합(1)  (0) 2021.01.11
브랜치  (0) 2021.01.10