일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 학습법 #집중력
- createElement
- boolean
- input
- appendChild
- FOR
- createtextnode
- htmlFor
- const
- Openlayers
- Let
- Append
- VAR
- Today
- Total
Atomic Habits
git3 - Sourcetree branch & conflict (2) 본문
git3 - Sourcetree branch & conflict 4.2. 병합 : 서로 다른 파일 병합
목표 : master 브랜치와 새로운 opentutorials 브랜치가 각각 다른 파일(파일명이 다른 파일)을 수정 후 병합하자.
1) 마스터 외 기존 브랜치 삭제
- 마스터에 접속
- 삭제할 브랜치 우클릭 - Delete 브랜치명 클릭
- Force delete : 삭제할 브랜치와 병합하지 않아서, 지워질 브랜치의 버전(내용물)이 유실될까봐 묻는 항목 - 강제 삭제
2) 새 브랜치 생성 (opentutorials 브랜치)
3) 마스터 접속 유지 - 파일 생성 및 내용 추가 후 커밋( 메세지 : master work 5 )
4) opentutorials 관련 사항
- opentutorials 브랜치 접속
- opentutorials.txt 파일 생성 -> opentutorials content 5 내용 추가
-> statge 올리기 -> 커밋( 메세지 : opentutorials work 5 )
5) (마스터 브랜치가 베이스가 되도록) opentutorials 브랜치 내용을 마스터 브랜치로 병합하기(합치기)
- 마스터로 접속(체크아웃)
- opentutorials 브랜치의 내용을 당겨와서 병합하는 과정 -> 좌측 opentutorials 브랜치 우클릭
-> Merge opentutorials into current branch 클릭
6) 병합 결과 확인하기
- 서로 다른 이름의 파일을 각각 수정한 master, opentutorials의 브랜치의 버전 master work 5, open... work 5가
병합되어 Merge branch 'opentutorials' 라는 이름의 새 버전이 생겼다.
- master work 5 의 파일 ( work.txt / maser.txt / .git )
- opentutorials work 5 의 파일 ( work.txt / opentutorials.txt / .git )
- Merge branch 'opentutorials' 의 파일 ( work.txt / maser.txt / opentutorials.txt / .git )
-> 마스터가 opentutorials 브랜치를 병합했다는 의미.
git3 - Sourcetree branch & conflict 4.3. 병합 : 같은파일, 다른부분 병합
다른 브랜치가 같은 파일 내 [서로 다른 부분] / [서로 같은 부분]을 수정하고 병합했을 때의 차이를 확인하자.
1) 임시 삭제 : opentutorials 브랜치 우클릭 -> 브랜치 삭제 ( Force delete 체크 X - 병합했으니 강제삭제 무관 )
2) opentutorials 브랜치 만들기 직전 상태인 master work 4 로 돌아가서 그 이후에 수정된 내용, 파일은 제거(되돌리기)하자.
3) master work 4 버전 우클릭 -> Reset current branch to this commit -> Hard 선택 -> Yes -> 복구 완료
4)
- work.txt 파일 수정 후 커밋 ( 메세지 : work 5 )
#title
content
#title
content
5) opentutorials 브랜치 생성 및 work.txt 파일 수정(하단 부분)
- work.txt 파일 수정 후 커밋 ( 메세지 : opentutorials work 6 )
#title
content
#title
opentutorials content
6) master 접속 후 work.txt 파일 수정(상단 부분)
- work.txt 파일 수정 후 커밋 ( 메세지 : master work 6 )
#title
master content
#title
opentutorials content
7) opentutorials 브랜치 내용을 마스터 브랜치로 병합하자.
- 서로 다른 브랜치가 같은 파일 내 서로 다른 부분을 수정하고 마스터로 병합한 결과
다른 브랜치가 같은 파일 내 [서로 다른 부분] / [서로 같은 부분]을 수정하고 병합했을 때의 차이를 확인하자.
git3 - Sourcetree branch & conflict 4.4. 병합 : 같은파일, 같은부분 병합
다른 브랜치가 같은 파일 내 [서로 다른 부분] / [서로 같은 부분]을 수정하고 병합했을 때의 차이를 확인하자.
1) 사전 작업
- 접속 중이며 병합된 Master 브랜치에서 work5 로 복구시킨다. -> Hard -> Ok -> Yes
- oepntutorials 브랜치 접속해서 work5 로 복구시킨다.
2) opentutorials 접속 / work.txt 파일 수정 / 커밋 ( 메세지 : opentutorials work 6 )
- 기존
#title
content
#title
content
- 수정 후
#title
content
opentutorials
#title
content
3) master 접속 / work.txt 파일 수정 / 커밋 ( 메세지 : master work 6 )
- 기존
#title
content
#title
content
- 수정 후
#title
content
master
#title
content
4) 마스터 기준으로 opentutorials 브랜치를 병합하자.
- 충돌메세지 당연히 뜬다. ( 같은 파일 내 같은 부분을 수정한걸 합치는 과정이므로 )
- 해당 파일을 찾아서 열어보자.
<<<<<<<< HEAD : 최근 체크아웃 한 브랜치의 최신 버전( 우리가 작업한 게 이거야 )
master
=====
opentutorials
>>>>>>>>> opentutorials : opentutorials 브랜치에서는 ======= 아래에 'opentutorials' 라는 내용을 작업했다.
5) 충돌 해결하기
(1) 방법1
- 좌측 최하단(스테이지에 올라가지 않은 파일) 우클릭 -> Resolve Conflicts(충돌 해결하기) ->
-> Resolve Using 'Mine' : 해당 파일에서 HEAD 의 내용만 남긴다. ( <<< 부터 === 까지 )
현재 접속 중 갑 브랜치 버전 우선
-> Resolve Using 'Theirs' : 해당 파일에서 opentutorials 브랜치의 내용만 남긴다. ( === 부터 >>> 까지 )
병합 당하는 비접속 중 브랜치 버전 우선
(2) 방법2 - ( 수동으로 코드 편집 후 Mark Resolved 클릭)
1) 해당 파일을 직접 열어 수동으로 남길 코드만 남기고 그외 부분은 제거한다. ( <<< === >>> )
2) 좌측 최하단(스테이지에 올라가지 않은 파일) 우클릭 -> Resolve Conflicts(충돌 해결하기)
-> Mark Resolved ('해결' 표시 ) -> Ok -> 자동으로 스테이지에 올라감
3) 수동 편집 후 Ok -> 자동으로 스테이지에 올라감 -> 해당 파일 클릭 -> (-, +) 내용 확인
-> 커밋( 메세지 : 어느 파일에서 충돌 발생했는지 자동 명시됨 )
4) 충돌 해결 결과
'IT > Git' 카테고리의 다른 글
Visual SVN Server에서 svn log 수정 허용 (0) | 2022.08.16 |
---|---|
[Visual SVN]windows visual SVN 세팅 & eclipse 연동 (0) | 2022.08.10 |
github - 프로젝트 - clone (0) | 2021.11.09 |
git3 - Sourcetree branch & conflict (0) | 2021.10.17 |