이 게시글은 Visual Studio 2015 기준으로 작성되었습니다.

 

 

- 충돌 상황 생성 및 충돌 알림 확인

1. 강제로 충돌 상황 생성

 

- 충돌 상황 해결

2. Fetch 및 새분기(브런치) 생성

3. 로컬 / 서버 파일 비교 기능 사용

4. 코드 수정 / 코드 통합 및 병합

 

- Commit / Push 결과 및 병합 코드 확인

5. Commit 및 Push 재시도

6. Github에서 변경 내용 확인

 

위의 과정을 이 게시물에서 다룹니다.

 

 

1. 강제 충돌 상황 생성

 

1) 로컬에 아래와 같은 코드를 작성합니다.(printf("hello local\n");을 주목)

2) 서버에는 아래와 같은 내용을 작성합니다.(printf("hello server\n");을 주목)

3) Visual Studio에서 Commit을 시도합니다. 그러면 정방향 업데이트가 아닌 업데이트가 발생한다는 메시지를 확인 할 수 있습니다. 서버와 로컬이 동기화가 되지 않아 정상적으로 Commit이 진행되지 않았습니다.

 

2. Fetch 및 새분기(브런치) 생성

 

4) 이를 해결하기 위해 Fetch 및 새분기(브런치) 생성을 진행합니다.  홈에서 [동기화]를 클릭합니다.

5) [페치]를 클릭해 서버의 파일을 로컬로 가져옵니다. 이 작업을 하면 Visual Studio와 GitHub가 자동으로 최신 커밋 이력을 이름 없는 브랜치로 로컬에 가져옵니다. 이 브랜치의 이름을 별도로 정하지 않았지만 'FETCH_HEAD'의 이름으로 접근할 수 있습니다.

6) 페치가 완료되면 충돌이 있다는 메시지와 이를 해결하라는 메시지가 나옵니다. [충돌 해결]을 클릭합니다.

7) 화면에 [편집된 위치]가 나옵니다. 편집된 위치가 상이한 파일이 공존하므로 충돌이 발생한 것입니다.

8) [파일 비교]를 클릭하면 상이한 부분에 표시가 됩니다.

9) [병합]을 클릭해 코드를 통일화합니다. Editter에 "hello merge"를 입력해 병합을 진행했습니다.

3. Commit / Push 결과 및 병합 코드 확인

 

10) 병합 사항을 저장하면 "남아 있는 충돌 사항이 없습니다."라는 메시지가 나옵니다. 이후 Commit 및 Push를 진행하면 정상적으로 진행됩니다.

11) GitHub에서 이전 과정에서 병합했던 코드가 정상적으로 적용됐음을 확인합니다.

12) Visual Studio에서도 정상적으로 병합된 코드를 확인합니다.

성공적으로 충돌 문제를 해결하고 서버와 로컬의 코드를 동기화했습니다.

'IT > GitHub' 카테고리의 다른 글

GitHub Pull 사용법(Visual Studio 활용)  (0) 2019.04.09
GitHub[Clone/Push/Remote] 사용법(Visual Studio 활용)  (0) 2019.04.09

+ Recent posts