Git 사용

$ git config --global user.name "이름"

$ git config --global user.email "이메일"

 

Git 명령어

 명령  기능
 git clone url [dir]  기존 프로젝트 복재
 git add files  스테이지 영역에 파일 추가
 git commit  스테이지 영역의 파일을 저장소에 추가
 git status  작업 디렉토리와 스테이지 영여의 파일들의 상태를 조회
 git diff  스테이지 영역의 파일과 작업 디렉토리의 파일에 대한 차이를 비교
 git pull  원격 저장소에 파일들을 가져와서 현재 가지(branch)들과 합병(merge)
 git push  원격 저장소에 현재 가지(branch)의 파일들을 합병(merge)

 

커밋(commit)

- 커밋할 파일은 스테이지되어야 하며 이후 파일 변경시 다시 스테이지 작업

$ git add <file>

 

- 스테이지된 파일 취소

$ git reset HEAD <file>

 

- 커밋시에는 모든 스테이지된 파일이 저장소에 기록 (로컬 저장소)

$ git commit -m "Fixing bug #22"

 

- 이전에 커밋된 상태 되돌리기

$ git checkout <file>

 

Status & Diff

- 작업 디렉토리와 스테이지 영역의 파일 상태 비교

$ git status

$ git status -s (간략한 정보)

 

- 작업 디렉토리와 파일과 스테이지 영역 파일과의 차이 비교

$ git diff

$ git diff --cached (로컬 디렉토리 비교)

 

Log 조회

- 로컬 저장소에 저장된 모든 변경사항

$ git log

$ git log --oneline (간략한 정보)

$ git log -5 (최근 5개 변경사항)

 

원격 저장소(Remote Repository) 명령어

 명령  기능
 git remote -v  원격저장소에 대한 정보 확인
 git fetch <remote>  원격지에는 존재하나 로컬에는 존재하지 않는 파일들을 가져옴
 git push <remote> <branch>  로컬저장소의 파일들을 원격 저장소에 업로드
 git remote show <remote>  원격저장소에 대한 상세한 정보를 조회
 git remote rename <remote> <new-name>  원격저장소에 대한 이름 변경
 git remote remove <remote>  원격저장소에 대한 참조를 제거

 

Pull & Push

- 원격 저장소로부터 파일들의 최신 버전을 로컬 저장소에 복사

$ git pull origin master

 

- 로컬 저장소의 파일들을 원격 저장소에 복사

$ git push origin master

 

- origin : 원격 저장소의 URL

- master : 리모트 브랜치의 이름

 

태깅(Tagging)

- 일반 태그(이름만 붙임)

$ git tag v1.4

$ git tag (태그 리스트 조회)

 

- 원격 저장소에 태그 전달

$ git push origin v1.5

 

- 주석 태그(이름, 설명, 서명 정보를 포함)

$ git tag -a -m "my version 1.4"

$ git tag -a v1.2 9fceb02 (9fceb02 해시로 시작하는 커밋에 태그 추가)

 

Git Alias

- 자주 사용하는 명령을 다른 이름으로 축약해서 사용

$ git config --global alias.cm commit → git cm

$ git config --global alias.st status → git st

$ git config --global alias.last "log -1 HEAD" → git last

 

SVN & Git

- SVN

: 중앙 집중화된 저장소 채택

: 중앙의 저장소만 파일의 완벽한 이력 정보를 유지

 

- Git

: 분산 저장소 사용

: 각각의 저장소는 모두 동등한 기능 제공

: 속도가 빠르고 파일들이 중복해서 존재

: 브랜치와 병합이 자주 발생