[Git] Git사용하기

youngseo·2022년 3월 29일
0

GIT

목록 보기
2/14

Git

1. Git이란?

GitVCS(Version Control System) 중 하나로 소프트웨어를 개발하는 기업의 핵심 자산인 소스코드를 효과적으로 관리할 수 있도록 해주는 무료, 공개 소프트웨어이다.

VCS (Version Control System) == SCM (Source Code Management) < SCM (Software Configuration Management: 형상관리)

형상관리는 버전관리보다 더 큰 개념이다.

소스코드를 깃허브와 같은 클라우드플랫폼에서 사용할 경우 CLI커맨드로 버전관리를 수행해야하기 때문에 CLI커맨드로 git을 사용할 줄 알면 GUI도구가 제공하는 기능에 대한 이해가 빠를 수 있다.

2. git의 특징과 이점

git의 특징

  • 빠른속도, 단순한 구조
  • 분산형 저장소 지원
  • 비선형적 개발(수천개의 브랜치) 가능

git의 이점

  • 소스코드를 주고받을 필요 없이 동시작업이 가능해져 생산성이 증가한다.
  • 수정내용은 commit 단위로 관리, 배포 뿐 아니라 원하는 시점으로 Checkout 가능하다
  • 새로운 기능 추가는 Branch로 개발하여 편안한 실험이 가능하며, 성공적으로 개발이 완
    료되면 Merge하여 반영한다
  • 인터넷이 연결되지 않아도 개발할 수 있다

3. git flow 이해를 위한 바탕지식

git objects

  • Blob: 파일 하나의 내용에 대한 정보
  • Tree: Blob이나 subtree의 메타데이터(디렉토리 위치, 속성, 이름 등)
  • Commt: 커밋 순간의 스냅샷

git repository

  • 원격 저장소 (remote repository)
    • Upstream Repository : 개발자들이 공유하는 저장소로 최신 소스코드가 저장되어 있는 원격 저장소
    • Origin Repository : Upstream Repository를 Fork한 원격 개인 저장소
  • 로컬 저장소 (local repository)
    Local Repository : 내 컴퓨터에 저장되어 있는 개인 저장소

git의 세가지 상태

  • Committed: 데이터가 로컬 데이터베이스에 안전하게 저장됐다는 것을 의미한다.
  • Modified: 수정한 파일을 아직 로컬 데이터베이스에 커밋하지 않은 것을 말한다.
  • Staged: 현재 수정한 파일을 곧 커밋할 것이라고 표시한 상태를 의미한다.

3. git flow와 CLI

  • 수정된 파일을 git add를 통해 staging area에 파일을 stage해서 커밋할 스냅샷을 만든다.
  • staging area에 있는 파일을 git commit을 통해 내컴퓨터에 저장되어 있는 개인저장소(localrepo)에 저장한다.
  • localrepo에 있는 파일을 git push를 통해 원격저장소(Remote repo)에 저장한다.
  • working directory
    • 사용자가 지금 사용하고 있는 컴퓨터에 있는 작업 디렉토리를 의미.
    • 아직 버전으로 만들어지기 전 단계.
  • staging area
    • 사용자가 설정한 파일들이 임시적으로 저장되는 공간.
    • staging area에 올라온 파일들은 git이 모든 변경사항을 추척하게 된다.
    • 버전을 만들려고 하는 파일들이 이에 해당.
  • local repo
    • staging area의 파일들을 최종적으로 우리 컴퓨터에 저장하는 저장소.
    • ex) github저장소
    • 만들어진 버전 파일들이 포함된다.

4. git !== github

Git

개발을 진행하며 작성하는 소스코드가 업데이트 되는 버전을 기록해두고 관리할 수 있는 소스코드 버전 관리 시스템. 트리이다.

Github

git이라는 도구를 위한 원격저장소 서비스(Cloud REmote REpository Services)를 하는 웹서비스이다. (이러한 웹서비스에는 Gitbub외에도 BitbucketGitLab이 있다.)


참고자료
Git공식페이지
저장소 관련 정리

0개의 댓글