깃(Git)은 컴퓨터 파일의 변경사항을 추적하고 여러명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템이다. - 위키백과

깃허브(Github)는 분산 버전관리 툴인 깃을 사용하는 프로젝트를 지원하는 웹호스팅 서비스입니다. - 위키백과

 

버전관리 시스템은 소스코드의 중요한 변화를 기록하는 작업으로 개인 및 팀 작업에 반드시 필요한 요소입니다.

깃허브는 주로 오픈소스등 공개된 저장소로 사용되지만, 개인용 저장소를 생성해 비공개 저장소로 이용가능합니다.

 

이 시리즈에서는 깃과 깃허브를 이용하는 기본적인 방법과 깃허브를 이용한 코드리뷰 방법을 설명합니다.

 

이 글에서는 다음 내용을 설명합니다.

  1. 깃 설치하기
  2. 깃 저장소와 소스코드의 구성
  3. 기타 - 깃의 기능(명령어) 소개

깃 설치

깃의 명령어를 사용하기 위해 깃 설치 프로그램을 설치합니다.

(깃허브 계정이 없다면)앞으로 깃허브에서의 실습을 위해 깃허브 계정을 생성합니다.

깃 저장소와 소스코드의 구성

기본 구성

 

 

깃 저장소는 위 그림과 같이 원격(Remote-Github) 저장소와 로컬(Local) 저장소로 분산되어 운용됩니다.

 

깃 허브에서 저장소를 생성 후, 로컬에서 Clone 명령을 통해 로컬로 소스코드를 복사합니다.

이후 변경된 내용은 Pull 명령을 통해 로컬에 반영합니다.

로컬의 소스코드를 편집 후 로컬 저장소에 Commit해 반영합니다.

로컬 저장소의 변경된 내역은 Push 명령을 통해 원격 저장소에 반영합니다.

 

마스터, 개발용 저장소 구성

 

 

위 그림과 같이 마스터 저장소(Master Rep.)와 개발용 저장소(Dev. Rep.)를 분리해 운영할 수 있습니다.

 

마스터 저장소를 Fork해 개발용 저장소로 복사해 병행 운용합니다.

마스터 저장소는 관리자가 운용, 개발용 저장소는 개발자가 운용합니다.

개발자는 개발용 저장소에서 소스코드를 Clone해 개발을 진행합니다.

개발용 저장소의 변경된 내역은 Pull Request로 마스터 저장소에 적용을 요청합니다.

관리자는 요청(Pull Request)을 확인 후 마스터 저장소에 적용합니다.

 

Fork는 깃 허브에서 제공하는 기능입니다. 또한 깃 허브에서는 Pull Request에시 커멘트를 추가, 답변할 수 있는 기능을 제공합니다. 이 기능을 이용해 코드리뷰 가능합니다.

 

기타 - 깃의 기능(명령어) 소개

깃은 명령줄 도구로 명령어를 통해 제어할 수 있습니다. 개발 도구나 써드파티 깃 클라이언트는 이 명령어 기반으로 UI를 제공합니다.

 

이 시리즈에서 사용하는 기능 들

  • Commit - 소스코드(및 기타 파일)의 변경(추가,수정,삭제) 내역을 로컬 저장소에 적용
  • Clone - 원격 저장소의 파일을 로컬로 복사해 로컬 저장소 생성
  • Pull - 원격 저장소의 변경된 내역을 로컬 저장소에 반영
  • Push - 로컬 저장소의 변경된 내역을 원격 저장소에 반영
  • Fork - 타인의 원격 저장소를 내 소유의 원격 저장소로 복사
  • Pull Request - Fork한 저장소의 변경내역을 소유자의 저장소에 적용을 요청

기타 자주사용하는 기능 들

  • Branch - 소스코드를 독립적으로 작업 진행하기 위한 분계(가지치기)
  • Checkout - Branch한 소스코드로 전환
  • Merge - Branch한 소스코드를 병합
  • Tag - 특정 시점에 알기 쉬운 이름을 부여(보통 릴리즈 시 사용. v1.0 등)

기타 다른 명령어 및 기능은 깃의 참고문서를 참고하시기 바랍니다.

 

참고 자료

다음 링크에서 RAD 스튜디오에서 Git 설정 및 불러오기 내용을 확인할 수 있습니다.

 

깃에 대해 추가 학습을 원한다면 다음 링크를 참고하시기 바랍니다.

번호 제목 글쓴이 날짜 조회 수
공지 [DelphiCon 요약] 코드사이트 로깅 실전 활용 기법 (Real-world CodeSite Logging Techniques) 관리자 2021.01.19 15427
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13961
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16497
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22054
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23268
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18922
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39252
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174698
9 [고객 사례- 델파이, 모바일, 전략] 축구 전술 기획 앱 - Soccer Playview 관리자 2021.08.20 1369
8 [고객 사례- 델파이, 교육] 교육용 프로그래밍 도구 – DEVFLOWCHARTER 관리자 2021.02.19 536
7 [고객 사례- 금융, 델파이] 주식, 화폐 등 금융 정보 분석 소프트웨어 - 게임스탑, 비트코인, 아마존, 구글 등 관리자 2021.02.04 627
6 [고객 사례- 의료, 델파이] COVID-19 - 검사 결과 실시간 확인 앱 관리자 2020.03.25 788
5 [고객사례-솔루션, 델파이] SQLGate - 데이터베이스 관리/개발 IDE 관리자 2019.12.19 475
4 [고객사례-유틸리티, 델파이] 녹음기 앱 - Voice Recorder 관리자 2019.12.10 686
3 [고객사례-게임, 델파이] Rise of Legions 관리자 2019.11.08 794
2 [고객 사례- 의료, 델파이] 의료용 소프트웨어(폐활량&심전도 체크) - Advanced Spirometer and ECG 관리자 2019.10.25 647
1 [고객사례-게임, 델파이] 오목게임 관리자 2018.10.23 799