깃(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 15465
공지 [UX Summit 요약] 오른쪽 클릭은 옳다 (Right Click is Right) 관리자 2020.11.16 13971
공지 [10.4 시드니] What's NEW! 신기능 자세히 보기 관리자 2020.05.27 16505
공지 RAD스튜디오(델파이,C++빌더) - 고객 사례 목록 관리자 2018.10.23 22061
공지 [데브기어 컨설팅] 모바일 앱 & 업그레이드 마이그레이션 [1] 관리자 2017.02.06 23273
공지 [전체 목록] 이 달의 기술자료 & 기술레터 관리자 2017.02.06 18932
공지 RAD스튜디오(델파이, C++빌더) - 시작하기 [1] 관리자 2015.06.30 39266
공지 RAD스튜디오(델파이,C++빌더) - 모바일 앱 개발 사례 (2020년 11월 업데이트 됨) 험프리 2014.01.16 174728
1383 모바일 장비의 엔터프라이즈 데이터: 가장 많은 실수 TOP 5와 방지 요령 관리자 2021.06.24 1201
1382 TEdgeBrowser에서 스크립트 실행하기와 소스 보기 관리자 2021.06.22 2285
1381 C++빌더 VCL 애플리케이션에서 PYTHON4DELPHI 활용하기 관리자 2021.06.09 1418
1380 네이티브 IOS & 안드로이드 앱 만들기 첫 걸음 관리자 2021.06.09 1559
1379 [개발 예제] 웹 소켓 서버&클라이언트 채팅 프로그램 관리자 2021.06.08 2343
1378 C++빌더 컨테스트! 관리자 2021.06.04 499
1377 내가 델파이를 계속 선택하는 이유 관리자 2021.06.01 1195
1376 BDE/파라독스를 인터베이스(INTERBASE)로 마이그레이션 하기 관리자 2021.05.31 537
1375 이 달의 기술자료 - 2021년 06월 file 험프리 2021.05.27 548
1374 [오브젝트 파스칼을 처음 접하는 사람들을 위한] 무료 튜토리얼 비디오 (DEREK BANAS) 관리자 2021.05.25 505
1373 델파이 코드 정적 분석기 V2.4 출시 및 무료 다운로드 관리자 2021.05.25 758
1372 [디버깅 작업] 코드사이트 – 무료 EXPRESS 에디션 활용하기 관리자 2021.05.20 415
1371 코드 서명 – 여러분이 개발한 프로그램, 컴퓨터 바이러스처럼 보이지는 않나요? 관리자 2021.05.12 640
1370 인터베이스, 비주얼 스튜디오 지원 확장 관리자 2021.05.10 518
1369 NEW! 델파이 오브젝트 파스칼 스타일 가이드 관리자 2021.05.04 512
1368 [패치] RAD스튜디오 10.4.2, 델파이 컴파일러 관리자 2021.05.04 896
1367 API로 머신 러닝과 컴퓨터 비전 활용하기 관리자 2021.05.04 526
1366 머신 러닝: 윈도우 앱에 적용하는 5가지 방법(파이썬과 델파이) 관리자 2021.04.30 502
1365 이 달의 기술자료 - 2021년 05월 험프리 2021.04.29 432
1364 델파이/C++ 프로그램 현대화 – 패스트리포트(FASTREPORT)를 활용해 윈도우 HIGH DPI 지원 버전으로 마이그레이션하기 관리자 2021.04.26 422