2 분 소요

Git

  • 분산 버전 관리 시스템
  • SVN과 달리 Local Repository가 존재하여 중앙 서버 문제시 복구 가능

Why Git?

  • 오픈 소스
  • 무료
  • 현업에서 가장 많이 사용이 되며 버전 관리에 높은 효율
  • 가볍고 빠르다

Git & Source-Tree Download

Set-up Part

  • 깃 기본 셋팅

깃 관련 모든 환경 설정 확인

> git config --list

파일로 환경 설정 확인

> git config --global -e

유저명, 이메일 설정

> git config --global user.name "youngminkim"
> git config --global user.email "youngmin1085@gmail.com"

에디터 줄바꿈 설정

> git config --global core.autocrlf true -- Window
> git config --global core.autocrlf input -- Mac

운영체제마다 에디터에서 새로운 줄바꿈을 할 때마다 들어가는 문자열이 달라짐

  • Window : text \r\n
  • Mac : text\n

Git Repository를 다양한 운영체제에서 사용을 할 경우 내가 수정하지 않았지만, 줄바꿈 문자열이 달라져 Git historyblame 보는데 문제 발생 가능.

학습 관점

에 관련된 전체적인 명령어에 대하여 이해 한다. 터미널을 통해 깃 명령어 숙지

> git 명령어 -옵션

실습 프로젝트 생성

root > projects > git

// 디렉토리 생성
> mkdir git

// 깃 저장소 초기화
> cd git
> git init
> ls -al
total 0
drwxr-xr-x  3 youngminkim  staff   96  7  2 11:13 .
drwxr-xr-x  3 youngminkim  staff   96  7  2 11:13 ..
drwxr-xr-x  9 youngminkim  staff  288  7  2 11:13 .git

> rm -rf .git // 제거
  • .git 파일은 깃 관련 파일 내용이 저장되어 있음
  • git init 명령어 사용 시 기본적으로 master branch사용

반복 명령어 별칭 설정 및 명령어 확인

> git config --global alias.st status // 별칭 설정
> git config --h //  명령어 확인

Basic Part

Git WorkFlow

Working directory -> staging area -> .git directory

  • 프로젝트 파일을 작업하는 working directory
  • 어느 정도 작업 후 버전 히스토리에 저장할 준비가 되어있는 파일들을 옮겨 놓는 staging area
  • 버전의 히스토리를 가지고 있는 .git directory

Working Directory

  • untracked와 tracked로 구분
  • 그 안에서 unmodified와 modified로 구분
    • 이전 버전과 비교하여 수정 되지 않았기에 modified된 파일만 staging area로 옮겨갈 수 있다
  1. 작업 -> 스테이징 서버 ->commit -> .git directory
  2. check out 명령어를 통해 언제든지 복원이 가능함
  3. 로컬 pc에만 저장해두는 것이 아닌, remote 서버에 저장 (push, pull)
  4. 각각의 커밋에는 스냅샷된 정보를 기반으로 하여 고유한 HashCode가 부여됨

텍스트 파일 프로젝트 생성

> echo hello world! > a.txt
> open .

깃 트래킹을 위해 add 명령어 사용

> git add a.txt
> git status

깃 untracted 상태로 변경

> git rm --cached *

git-ignore 파일 설정

> echo *.log > .gitignore
> open .gitignore

git status 명령어

> git status -s // staging 상태 확인 가능

git diff 명령어

정확하게 어떤 파일이 수정 되었는지 확인 할 수 있다 diff 명령어는 좀 더 자세히 알아볼 필요가 있을 듯

> git diff
// git command를 이용하여 이전 버전 'a' 와 지금 버전인 b를 비교
diff --git a/b.txt b/b.txt
deleted file mode 100644
index a042389..0000000
--- a/b.txt
+++ /dev/null
@@ -1 +0,0 @@
-hello world!
(END)

git commit 명령어

commit 명령어를 통해 git repo에 올린다

> git add . // load on staging server
> git commit -m "first commit for git" // staging server file commit
> git commit -am "second commit for git" // working dr, staging server commit

.git derectory

  • 버전별로 관리할 수 있는 유용한 창고
  • 히스토리를 관리할 수 있음
  • 의미있는 이름을 통해 기능 단위 / 작업 단위로 나누어 커밋을 수행
    • 버전별로 관리를 하기에, 위 같이 커밋을 수행
  • (중요) 커밋을 할 때 고친 내용이 있을 경우 고친 내용만 올린다
  • 그렇다고 너무 작은 단위로 나누는것은 좋지 않음

참고 자료

댓글남기기