본문 바로가기

IT

Visual Studio 와 github.com을 이용한 Branch 별 프로젝트 관리 방법

출저: http://blog.naver.com/mcpelee/220710300178



Git 사용 방법


이 문서는

Visual Studio 와 github.com을 이용한 Branch 별 프로젝트 관리 방법을 설명합니다.


  1. 소스 관리 개요

  2. git 설치

    1. https://git-scm.com/download/win 에서 git 설치

    2. https://tortoisegit.org/download/ 에서 다운로드

    3. 비쥬얼 스튜디오 확장 프로그램에서 GitHub 설치

    4. PuTTY 에서 키젠

    5. Key comment 에 아이디, Key passphrase 에 비밀 번호 입력

    6. Key 복사하여 github settings > SSH keys 에 등록

    7. tortoiseGit 에서 최초 Clone

    8. Clone 완료후 해당 폴더로 들어가서 Settings

    9. Git > Remote 메뉴에서 Putty Key 경로 설정

    1. 분기(branch) 의 생명 주기

master와 dev는 계속 운영되는 branch입니다.

master는 IIS 운영 사이트에서 사용하고,

dev는 IIS 개발 사이트에서 사용합니다.


dev, master 에 직접 개발은 없습니다.

프로젝트를 진행하는 그룹 또는 개인은 반드시 분기(branch)를 새로 생성해야 합니다.


userProject ...

1인 프로젝트 또는 그룹 별로 분기(branch)를 생성하여 진행합니다.









 

  1. 실전

    1. 분기(branch)만들기

                   


Branch 선택 박스를 클릭 후 Find or create a branch에 유효한 이름의 branch 명을 입력합니다.


유효한 이름의 branch

보통 의미 있는 개발 단위 이름을 입력합니다.

ex. MyPage, AccountLogin, … etc
















 

    1. Visual Studio에서 분기(branch) 선택하기


Visual Studio 에서는 신규 생성한 분기가 바로 나타나지 않습니다.

기본 분기인 dev에서 ‘동기화’를 통하여 원격 분기 리스트를 업데이트 합니다.

    >      

원격(remotes) 에서 등록한 분기를 더블 클릭하여 로컬에 체크 아웃 받습니다.


체크 아웃이 완료되면 Visual Studio는 자동으로 해당 분기의 프로젝트로 로드 합니다.


 

    1. 프로젝트 진행 (코딩)

현재 시나리오는…

3개의 파일을 새로 생성하였고 프로젝트는 개발 및 단위 테스트 완료되었습니다.


개발 및 단위 테스트

이 프로젝트를 위해 새로 만든 분기 내에서만 테스트 합니다.

IIS 개발 사이트 분기인 dev에 병합하지 않습니다.

따라서 로컬 IIS 테스트만 가능합니다.


















 

    1. 프로젝트 커밋 및 동기화

개발되는 소스 코드들은 로컬 커밋 및 원격 동기화를 합니다.


커밋 후 동기화 버튼을 사용하십시오.

커밋은 로컬 PC에 저장되며 동기화를 하여야 원격 저장소에 푸시 하게 됩니다.

동기화는 해당 분기만 동기화를 합니다.


주석

주석을 의미 있게 작성하십시오. 이 주석은 코드 리뷰 시 검토자 에게 중요한 가이드가 됩니다.

주석을 의미 있게 달 수 있다는 건 자신이 프로그램을 이슈 별로 잘 분리하여 개발 중 이라는 말이기도 합니다.


    1. 개발 종료를 알리고 리뷰 요청하기

githun.com 에 접속, 자신의 분기를 선택하여 New pull request를 클릭합니다.


New pull request

pull request는 해당 분기마다 개발 담당자가 한번만 신청하십시오.

pull request가 close 되면 해당 분기에서 개발 담당자가 다시 신청 할 수 있습니다.


1, 2, 3 설명!

  1. 현재 분기인 TEST 는 dev와 병합할 것입니다.(별도 조작 하지 마십시오.)

  2. 그러기 위한 pull request를 작성할 것이고 그것에 대한 간략한 요약 설명입니다.

  3. 신청


신중하십시오.

pull request는 개발 종료를 알리고 다른 개발자들에게 리뷰를 요청하는 단계 입니다.


풀 신청

풀 신청은 해당 분기의 담당자가 직접 하여야 합니다.













 

    1. 리뷰 하기

리뷰어들은 변경된 파일 목록에서 줄 단위로 리뷰 할 수 있습니다.

개선 사항이나 궁금한 점을 작성 하십시오.


 

리뷰를 확인 하십시오.

담당 개발자는 리뷰를 확인하고 반드시 확인 하십시오.

리뷰어들은 리뷰한 내용을 다시 확인하지 않습니다.

담당자가 책임 지고 변경 여부를 결정 하십시오.


    1. 개발 분기(dev)에 이관하기

해당 pull request에서 Conversation 탭으로 돌아오면 다음의 카드를 볼 수 있습니다.

pull requst 현재 분기(TEST)를 기본 분기(dev)로 병합하는 기능

현재 분기와 기본 분기 사이에 충돌 되는 파일이 있으면 버튼은 활성화 되지 않습니다.




















 

    1. 충돌 상황 처리 하기

충돌 상황이 발생하여 github.com 에서 병합 할 수 없는 경우 Visual Studio를 통하여 해결합니다.


Visual Studio

충돌 상황 해결은 별도의 외부 프로그램으로도 해결 할 수 있으나, 빌드 검증을 위해서 Visual Studio를 이용하십시오.


분기 메뉴에서 대상 분기는 dev로 선택하여 병합을 클릭합니다.

이미 github.com 에서 병합에 실패 하였기 때문에 Visual Studio 에서도 별 수 없이  실패 하게 됩니다.

충돌 알림을 클릭하여 충돌 내용을 해결 하십시오.


충돌 되는 파일 별로 병합 메뉴가 나타납니다.

병합은

두 파일을 비교할 수 있는 “병합” 버튼과 해당 분기로 강제 맞추기가 있습니다.


병합

특별한 경우가 아니라면 “병합” 버튼을 클릭하여 내용을 확인하고 병합하십시오.


Visual Studio에서 제공하는 병합툴로 양측 분기의 소스(1, 2)를 병합하여 결과물(3)을 확인하고 병합수락(4) 버튼을 클릭하십시오.


병합이 완료되면 소스가 변경되기 때문에 당연히 다시 커밋 및 동기화를 해야 합니다.

지금 커밋 및 동기화 되는 내용은 자동으로 pull request에 반영됩니다.


    1. 개발 분기(dev)에 이관하기

충돌 내용이 없는 경우 github.com에서 개발 분기로 병합할 수 있습니다.

Merge pull request 버튼을 통하여 병합하십시오.

병합이 완료되면 분기를 삭제 할 수 있는 메뉴로 변경됩니다.


    1. pull request 종료 및 프로젝트 분기 삭제 하기

개발 분기와 병합이 완료되고 더 이상의 이슈가 없는 경우 pull request를 종료하여 개발을 종료 합니다.


개발이 종료 됨으로 더 이상 필요 없는 분기도 삭제 합니다.

Delete branch 를 클릭하여 분기를 제거 하십시오.

삭제 하더라도 다시 복구 할 수 있습니다.


병합 종료 및 분기 삭제

병합 종료 및 분기가 삭제되면 자동으로 pull request는 close 됩니다.


로컬 분기 삭제

로컬 컴퓨터에서는 로컬분기와 원격분기가 자동으로 삭제 되지 않습니다.

이는 git 로컬서버가 동작함으로 발생하는 정상적인 상황입니다.

자신의 로컬 소스는 알아서 삭제 하십시오.


신중하십시오.

원격 분기를 삭제할때 다른 개발팀의 분기를 삭제하지 않도록 하십시오.


 

출ㅈㅁ