SourceTree branch, conflict

강정우·2022년 8월 7일
0

형상관리

목록 보기
2/5
post-thumbnail

브랜치와 충돌

  • 브랜치에서 중요한 것은 이 history들이 어떻게 되어있나 독해하는 능력
    상단 naviation bar에 브랜치를 클릭하여 원하는 이름의 브랜치를 생성

1. 브랜치 생성

  • 각각의 브랜치들을 보여주고 왼쪽 navigation bar에 동그라미는 해드라고 하며 현재 브랜치의 위치를 의미함.
  • 브랜치를 원하는 곳으로 옮기는 동작을 체크아웃이라고 함.
  • 위 그림과 같이 한 곳에서 여러 브랜치를 뽑아낼 수 있음.

2. 브랜치 제거

  • 왜 물어보냐면 병합을 하지 않아서 코드의 유실이 있을까봐 걱정해주는거임

3. 브랜치 병합

  • 누구를 누구에게가 매우 중요함

1) 같은 파일 다른 부분

  • 2개의 서로다른 branch에서 각자 작업을 한 후 merge를 당할 branch를 들어가서 merge를 눌러준다.

  • 오른쪽 아래서 볼 수 있듯 서로 다른 코드를 자동으로 병합시켜줌.

2) 같은 파일 같은 부분

  • 서로 같은 부분을 수정하고 병합을 시도하면
  • 다음과 같이 오류가 뜨고
  • = 요 구분자를 기준으로 <<<HEAD 부분이 현재 우리가 작성하는 부분, >>> 브랜치 명 으로나뉜다.
  • 이때 Unstaged files에 충돌해결 부분을 클릭 후 'Mine'을 클릭하면 현재 내 코드가, 'Theirs'를 클릭하면 상대방 코드가 적용되며
  • 둘다 필요한 코드라면 수정 후
  • 수정되었음 을 클릭 후 정상적으로 stage로 commit한다면 된다.

4) 충돌

  • 이때 base는 branch가 아니라 here 브랜치와 there 브랜치의 공동 조상 node를 뜻한다.
  • 즉 2 way merge 보다 3 way merge가 더 좋을 때가 있으며 3 way merge에서는 base와 비교하여 수정된 부분을 최종적으로 채택하여 적용한다.

5) 충돌관리 tool

  • 자동으로 stage에 올라간다.
  • orig는 백업파일이다.

6) version 관리 tool

  • git flow가 있다.
  • cherry pick
  • rebase
profile
智(지)! 德(덕)! 體(체)!

0개의 댓글