Git

  • 형상 관리 도구(Configuration Management Tool)
  • 다른말로 버전관리 시스템
  • 프로젝트 소스 코드를 효과적으로 관리할 수 있는 시스템
    • 여러명이 동시에 작업하더라도 문제 X
    • 소프트웨어의 여러 버전을 동시에 관리 가능
    • 프로젝트 진행의 모든 로그를 볼 수 있으며 해당 시점으로 되돌리는 것도 가능


사용자 설정

  • 로컬에서 사용할 Git 사용자 이메일과 이름을 설정
  • git config Git에 관한 설정을 추가/변경/삭제하는 명령어
  • 설정파일 종류
    • System 설정파일: 모든 시스템 사용자에게 적용(git config –system)
    • Global 설정파일: 한 사용자의 전치 Git Repository에 적용(git config –global)
    • Local 설정파일: 하나의 Repository에만 적용(git config –local)
1
2
3
4
5
6
Global Git 사용자 설정
git config --global user.email "abc@abc.com"
git config --global user.name "Hong gil-dong"

설정 확인
git config --list
  • Github 계정에 ssh key 등록하기
    1. ssh key 만들기
    2. Github 접속 후 오른쪽 상단 프로필 클릭 Setting -> SSH and GPg Keys
    3. new SSH Key 클릭 후 Title과 복사한 Key 입력 후 Add SSH Key 클릭


초기화 및 삭제

  • 명령어 : git init
  • 초기화 할 대상 폴더에서 명령어 입력
  • Git 초기화 시 폴더 안에숨김 폴더로 .git 폴더 생성(local Config 등으로 구성)
  • .git 삭제시 git 삭제


.gitignore

  • 사용자가 git에 등록(커밋)되지 않길 원하는 파일 또는 폴더들의 목록을 저장
  • 작성법
    • #은 주석의 역할
    • 폴더: /폴더명(/docs)
    • 파일: 파일명.확장자(filename.txt)
    • 폴더 안 특정 확장자 파일 전부(/docs/*.txt)
    • 폴더 하위 모든 특정 확장자 파일 전부(/docs/**/*.txt)
  • .gitignore 작성에 유용한 사이트


기본 동작 원리

  • Working Directory: 작업하는 파일이 있는 디렉토리
  • Staging Area: Git에 등록(커밋)할 파일들이 올라가는 영역
  • Local Repository: 로컬 Git 프로젝트의 메타데이터와 데이터 정보가 저장되는 영역
  • Remote Repository: Github 등의 서비스를 통한 온라인 상의 저장소

git


기본 용어

  • Origin: 원격 (Github 등의 온라인 저장소)에 있는 코드
  • Head: 내가 지금 작업하고 있는 로컬 브랜치
  • Add : Working Directory에서 Staging Area로 등록
  • Commit : Staging Area에 등록된 파일을 Local Storage로 등록
  • Commit Message : commit 시 함께 작성해 저장하는 메시지 (메모)
  • Push : Local Storage에서 변경된 파일들을 Remote Repository로 등록
  • Fetch : Remote Repository의 변경된 파일들을 Local Repository로 전달
  • Merge : Local Repository의 변경사항을 Working Directory로 전달
  • Branch : 독립적으로 어떤 작업을 따로 진행하기위한 가지
  • Checkout : 사용할 다른 브랜치를 지정
  • Pull : 원격 저장소에서 변경된 파일들을 로컬 저장소에 저장(Fetch+Merge)
  • Clone : 로컬에서 작업하기 위해 Remote Repository를 복제해 내 PC에 Local Repository로 저장


Local Repository

  • Repository: 파일이나 폴더를 저장하는 곳, Git 저장소는 파일 변경 이력별로 구분되어 저장
  • Snapshot: 파일이나 폴더의 상태를 저장
  • 내 PC에 파일이 저장되는 개인 저장 공간
  • Local Repository 생성(원격 저장소에서 복사해 생성할 수도 있음)
    1. 원하는 폴더 생성
    2. 해당 폴더에서 git init 명령어 입력
    3. .git 폴더 생성 확인


Remote Repository

  • 파일이 전용 서버(Github)에서 관리되며 여러사람이 함께 공유
  • Github를 통해 생성

Conflict

  • 같은 파일 같은 부분을 수정한 브랜치들을 Merge할때 발생

  • Branch를 Merge할 때 발생할 수 있음.
  • 같은 부분을 작업한 다른 작업자와 협의 후 해당부분 수정


터미널로 git 관리

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 깃 상태 확인
git status

# Clone
git clone [원격 저장소 주소]

# Add
git add [변경된 파일명]
# 추가되지 않은 파일들 모두 한번에 Staging Area에 추가
git add -i

# Staging Area 에서 Working Directory로 내림
git restore --staged [변경된 파일명]

# Commit
git commit -m"커밋 메세지"

# Push
git push

# 그래프와 변경사항을 확인 
git log --decorate --graph

댓글남기기