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

 

먼저 Fetch와 Pull의 차이를 이해해야 합니다.

둘은 비슷한듯 하나 아래와 같은 차이가 있습니다.

 

Fetch : 서버의 파일을 로컬로 가져온다. 현재 작업중인 소스들을 변경하는 Merge 작업은 하지는 않는다.

Pull : 서버의 파일을 로컬로 가져온다. 또한 현재 작업중인 소스들의 Merge 작업도 수행한다.

 

상황에 맞게 사용하면 됩니다.

이번에는 Pull을 해보겠습니다.

 

 

1) GitHub의 코드를 입력하고 Commit합니다.

2) 상단 바의 팀 -> 연결 관리로 팀 탐색기를 열고 [동기화]를 클릭합니다.

3) 이후 [끌어오기]를 클릭합니다. 끌어오기 버튼은 [Pull]을 수행해줍니다.

4) Pull이 완료됐다는 메시지와 함께 코드가 수정됐음을 확인할 수 있습니다.

5) 기존에는 서버와 로컬의 파일(소스코드)이 달랐지만 끌어오기(Pull) 이후 서버의 최신 코드로 동기화가 되었습니다.

서버 코드(GitHub)

 #include<stdio.h>

 

int main() {

   printf("hello pull\n);

   return 0;

}

로컬 코드(Pull 이전)

#include<stdio.h>

 

int main() {

   printf("hello merge\n);

   return 0;

}

로컬 코드(Pull 이후)

 #include<stdio.h>

 

int main() {

   printf("hello pull\n);

   return 0;

}

성공적을 Visual Studio를 활용해 Pull을 성공했습니다.

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

GitHub 충돌 해결(Visual Studio 활용)  (0) 2019.04.09
GitHub[Clone/Push/Remote] 사용법(Visual Studio 활용)  (0) 2019.04.09

이 게시글은 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

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

 

 

1. Visual Studio로 GitHub 프로젝트 Clone하기

 

1) 우선 GitHub에 접속해 새로운 Repository를 생성합니다.

2) 이후 Clone을 하기위해 새롭게 생성한 Repositorty의 해당 URL을 복사합니다.

3) Visual Studio를 실행하고 상단 바의 팀->연결 관리를 클릭해 팀 탐색기를 실행합니다. 이후 [복제할 Git 리포지토리의 URL을 입력하십시오.]에 붙여넣기한 뒤 복제(Clone) 버튼을 클릭합니다.

4) 만약 성공적으로 복제(Clone)을 성공한 경우 아래 사진과 같은 메시지가 출력되고 로컬 Git 리포지토리가 생성됩니다.

[새 프로젝트 또는 솔루션을 만드세요.] 라는 메시지를 클릭해 새로운 프로젝트를 만듭니다.

5) 기존에 프로젝트를 만드는 방식과 동일하게 만들면 됩니다.

6) 방금 만든 프로젝트에 GitHub 연동 및 Commit/Push 테스트를 위해 소스.c 파일을 만들고 코드를 입력해보겠습니다.

7) 아래처럼 간단한 코드 입력 후 저장을 합니다.

8) 팀 탐색기 홈에서 [변경 내용] 버튼을 클릭해 변경 내용을 스테이징 상태로 만듭니다.

9) 변경 내용을 기록하기 위해 메모를 남깁니다. 적절한 커밋 메시지를 남겨두면 이후 커밋 내용에 대한 파악이 가능합니다. 주석과 비슷한 기능을 합니다. 테스트로 "visual studio commit test"라고 남겼습니다.

10) 이후 다시 홈으로 돌아와 [동기화] 버튼을 클릭합니다.

11) 나가는 커밋에 방금 만든 Commit이 있습니다. 푸시 버튼을 클릭하면 GitHub에 변경 사항이 동기화됩니다.

12) GitHub에 접속하면 아래처럼 파일이 업로드된 것을 확인할 수 있습니다.

Clone 후 수정 및 Commit / Push 작업이 성공적으로 이루어졌습니다.

 

2. Remote 설정하기

 

1) 확장  기능이 필요하므로 제어판을 통해 새로운 기능을 설치합니다. 수정 버튼 클릭 후 [Visual Studio용 GitHub 확장 (타사)]를 설치하면 됩니다. 설치가 되어있지 않은 경우가 대부분이라고 합니다.

2) 이후 Visaul Studio를 실행해 상단 바의 팀 -> 연결 관리 -> 홈을 클릭하면 아래 사진처럼 GitHub와 Remote된 것을 볼 수 있습니다. 이 과정을 마치면 GitHub의 파일을 원격제어할 수 있습니다.

성공적으로 Remote 설정을 마쳤습니다.

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

GitHub Pull 사용법(Visual Studio 활용)  (0) 2019.04.09
GitHub 충돌 해결(Visual Studio 활용)  (0) 2019.04.09

+ Recent posts