[Git] Git 기본 명령어 정리
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 history
나 blame
보는데 문제 발생 가능.
학습 관점
깃에 관련된 전체적인 명령어에 대하여 이해 한다. 터미널을 통해 깃 명령어 숙지
> 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로 옮겨갈 수 있다
- 작업 -> 스테이징 서버 ->commit -> .git directory
- check out 명령어를 통해 언제든지 복원이 가능함
- 로컬 pc에만 저장해두는 것이 아닌, remote 서버에 저장 (push, pull)
- 각각의 커밋에는 스냅샷된 정보를 기반으로 하여 고유한 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
- 버전별로 관리할 수 있는 유용한 창고
- 히스토리를 관리할 수 있음
- 의미있는 이름을 통해 기능 단위 / 작업 단위로 나누어 커밋을 수행
- 버전별로 관리를 하기에, 위 같이 커밋을 수행
- (중요) 커밋을 할 때 고친 내용이 있을 경우 고친 내용만 올린다
- 그렇다고 너무 작은 단위로 나누는것은 좋지 않음
댓글남기기