본문 바로가기
2023_국민대/AI 개발 환경의 이해

[Git] Git, Github

by yejineee 2023. 6. 9.

많은 사람들과 협업, 많은 요청사항, 큰 규모 등 여러 상황이 발생할 수 있음

→ 제대로 관리가 안됨

그러기 위해서 버전관리 시스템!

버전 관리 시스템

파일의 변화를 시간에 따라 기록했다가 나중에 특정 시점의 버전을 다시 읽어올 수 있는 시스템

  1. 각 파일을 이전 상태로 되돌릴 수 있어야함
  2. 프로젝트를 통째로 이전 상태로 되돌릴 수 있어야함
  3. 시간에 따라 수정 내용을 비교해 볼 수 있어야함
  4. 누가 문제를 일으켰는지 추적할 수 있어야함
  5. 누가 언제 만들어낸 이슈인지 알 수 있어야함

1.파일을 이전으로 돌리게 되는 경우

  • 기능 변경 요청에 따라 수정했으나 요청이 철회된 경우
  • 테스트 과정에서 수정된 사항에 문제가 발생하여 해당 내용을 일단 제외하기로 한 경우
  • 수정이 잘못되어 재작업이 필요한 경우
  • 특정 시점의 버전에서 문제를 확인하고 싶은 경우 

2.특정 시점의 묶음이 필요한가?

Codeline: 특정 소스 코드 파일(ex: x.py)이 변하는 현상

Baseline: 특정 소프트웨어 시스템을 구성하는 소스 코드 파일들의 묶음

3.변경된 코드 현상

변경 사유에 대한 상세한 기록 필요!

4.거대한 규모는 소프트웨어 개발자만 ~~명!

문제가 발생한 코드를 변경한 개발자가 누구인지 알 수 있어야함 

5.지속적인 변경 요청에 대한 관리 필요

이슈 트래킹 시스템과 연동하여 관리 (ex: slack, Jira, Trac, Bugzila)

이슈에 대한 피드백, 진행 상황 모니터링 등 


Git

소스코드의 버전 사이를 오가는 기능을 제공하는 버전 관리 시스템

→ 버전 사이를 자유롭게 이동하며 새로운 소스코드를 추가, 삭제, 변경

 

전 세계적으로 수많은 개발자가 Git으로 협업하고 있음

 

Git으로 관리하는 프로젝트를 올려 둘 수 있는 저장소 & 사이트 존재

Github

Git 원격 저장소(호스팅 사이트) 중 하나

 

사용자 2,800만명으로 세계 최대 규모, 개인은 무료로 사용 가능

 

오픈소스 프로젝트

→ 누구든지 기여할 수 있는 공개 저장소 프로젝트. 이름,얼굴도 모르는 전 셰계 개발자와 협업 가능

Github에 소스코드를 공개 저장소로 올려두면 시간 공간의 제약 없이 현업 할 수 있음 


Linux OS에 Git 설치하기

터미널에서 명령어를 통해 설치 & 버전 확인

# apt-get install git

# git --version

 


GUI 환경에서 Github

Git Cola 설치

# apt-get install git-cola

 

GitCola를 사용하여 GUI환경에서 Github 사용&활용


저장소 Repository

버전 관리를 하고 싶은 파일들과 이력을 모아둔 묶음 (폴더)

로컬 저장소: 내 PC에 있는 저장소

원격 저장소: 원격에 있는 서버에 만들어진 저장소 

Step1. 원격 저장소 만들기

Github 사이트 로그인 후, 우측 상단 New 버튼을 통해 저장소 생성 (저장소 이름 변경)

  • Public 저장소: 다른 사용자들이 볼 수 있음
  • Private 저장소: 특정(권한이 있는) 사용자들만 볼 수 있음 
  • 라이선스: Public 저장소의 경우, 누구든 접근 할 수 있으므로 라이선스를 고려할 필요 있음 (향후 변경 가능)

Step2. 원격 저장소 확인

Step3. 저장소 복제 (원격→로컬)

원격 저장소를 내 컴퓨터에 저장할 디렉토리 선택 (username, password 인증 필요)

# mkdir [directory name]

Step4. 복제된 로컬 저장소 확인

저장소에 아무파일도 없어 비어있지만, 버전 관리를 위한 git 디렉토리가 숨김 상태로 존재

ls -al 로 확인 가능

Step5. 사용자 설정

Git Cola 메뉴: [File] → [Preferences]

Git은 누가 작업했느냐가 매우 중요! (Github User Name, Github 가입 이메일)


파일 추가

소스 코드만이 아니라 모든 종류의 파일 관리

ex) 설계 문서, 환경 설정 파일, 쉘 스크립트 등

 

로컬 저장소 디렉토리에 생성되는 파일 != 버전 관리 대상 파일

(그러나 대부분의 파일들이 버전 관리 대상)

 

버전 관리가 불필요한 파일

  • 개발 툴에 의해서 생기는 설정 파일
  • 컴파일 및 빌드 시 자동으로 생기는 파일
  • 문서의 자동 저장 버전
  • 빌드한 프로그램이 자동으로 만드는 파일

→ 이러한 파일들이 컴퓨터 환경 차이에 의해 지속적으로 변경될 수 있는데, 이 변경이 보관될 필요가 없음

 

Step1. 로컬 저장소에 파일 생성하기

터미널에서 README.md 파일 추가

파일 생성 후, 기본 상태는 Untracked

Step2. 파일 상태 변경하기

Untracked → Staged (파일 더블 클릭)

 

Stage (1단계: stage로 올리기)

디렉토리에 새로운 파일을 생성했을 때, 현재 변경된 내용 (파일 추가, 파일 변경 등) 중, 기록을 남길 대상을 선정

Step3. 커밋 Commit

commit Message 입력후, commit (2단계: commit)

 

커밋 메시지의 중요성

  • 커밋 시, 남기는 메시지는 변경의 이유!
  • 대충 남기게 되면, 결국 이전/이후 파일을 비교해서 변경의 이유를 유추해야함
  • 각 조직마다 개발자의 개인 역량에 따른 차이를 보완하기 위해 메시지의 포맥을 지정해두기도 함

Step4. 커밋된 파일 확인

[View] → [File Browser]

file 오른쪽 마우스 클릭 → [View History]

 

Commit은 로컬 저장소에만 이력을 남긴 상태 → 푸쉬를 해야됨

Step5. 푸쉬 Push

[Actions] → [Push]

Github 가입시, Username, password 입력

Public repository 이므로 원격 저장소를 clone 할 때는 계정 정보가 필요하지 않음

원격 저장소에 변경을 하고자 할 때는 변경 권한이 있는 계정이 필요

 


CLI 환경에서 Github

CLI란?

Command Line Interface

CLI 환경을 사용하는 좋은 이유

  • 여러 환경의 테스트 장비에서 가볍게 git 사용
  • CLI 명령어는 다양한 옵션 제공
  • CLI 명령어를 알면 Git의 동작 원리를 이해하고, 올바르게 활용

CLI 명령어의 구성

서브 명령어: GUI에서 보았던 메뉴

옵션: 메뉴 수행 시, 선택하거나 입력할 수 있었던 항목

  • 다양한 옵션을 제공하고 있으며 이는 도움말을 통해 확인 가능
  • git help <command>

부가 정보: 선택하거나 입력할 수 있었던 항목의 내용에 해당

 

 

 

 

 

 

 

 

'2023_국민대 > AI 개발 환경의 이해' 카테고리의 다른 글

[Docker] Docker 환경 웹서버 구축  (0) 2023.06.05
[Docker] Doker 개발 환경  (1) 2023.06.05
[Linux] Docker 개발 환경  (0) 2023.04.16
[Linux] Docker  (0) 2023.04.16
[Linux] 웹 서버 구축 Apache  (0) 2023.04.15