1. Git 명령어 요약
1.1. 설정과 초기화
전역 사용자명/ 이메일 구성하기
$ git config --global user.name “YOUR NAME” 4 git config --global user.email “YOU@EXAMPLE>COM” |
저장소 하나에 사용자명 / 이메일 구성하기
주의: 저장소마다 사용자명과 이메일 주소를 설정할 수 있다. 따라서 프로젝트마다 각각 다른 사용자명과 이메일 주소를 사용할 수 있다.
$ cd /path/to/repo $ git config user.name “YOUR NAME” $ git config user.email “YOU@EXAMPLE.com” |
Git의 출력결과 색상 활성화하기
$ git config --global color.ui “auto” |
새로운 저장소 초기화하기
$ mkdir /path/to/repo $ cd /path/to/repo $ git init … $ git add . $ git commit –m ‘initial import’ … |
저장소 복제하기
$ git clone <저장소 url> |
기존 디렉터리에 Git 추가하기
$ cd /path/to/existing/directory $ git init … $ git add . $ git commit –m “initial import of some project” |
새로운 원격 저장소 추가하기
…저장소 디렉터리에서 실행한다… $ git remote add <원격 저장소> <저장소 url> |
1.2. 기본적인 사용법
새로운 파일을 추가하거나 존재하는 파일 스테이징하고 커밋하기
$ git add <file> $ git commit –m “<message>” |
파일의 일부를 스테이징하기
$ git add –p [<file> [<file> [기타 파일들 …]]] …커밋하려는 헝크를 선택한다. |
add 명령에서 Git 대화모드를 사용하여 파일 추가하기
$ git add –i |
수정되고 추적되는 파일의 변경 사항 스테이징하기
git add –u [<경로> [<경로>]] |
수정되고 추적되는 모든 파일의 변경 사항 커밋하기
$ git commit –m “<message>”–a |
작업 트리의 변경 사항 돌려놓기
$ git checkout HEAD <file> [<file>] |
커밋되지 않고 스테이징된 변경 사항 재설정하기
$ git reset HEAD <file> [<file>] |
마지막 커밋 고치기
.. 변경하고 스테이징한다… $ git commit –m “<message>”–amend |
이전 커밋을 수정하고 커밋 메시지를 재사용하기
$ git commit –C HEAD --amend |
1.3. 브랜치.
지역 브랜치 목록 보기
$ git branch |
원격 브랜치 목록 보기
$ git branch –r |
지역과 원격을 포함한 모든 브랜치 목록 보기
$ git branch –a |
현재 브랜치에서 새로운 브랜치 생성하기
$ git branch <새로운 브랜치> |
다른 브랜치 체크아웃하기
$ git checkout <branch> |
현재 브랜치에서 새로운 브랜치 생성하고 체크아웃하기
git checkout –b <새로운 브랜치> |
다른 시작 지점에서 브랜치 생성하기
브랜치는 저장소 이력에 존재하는 어떤 위치에서도 생성될 수 있다.
브랜치를 생성할 위치는 다른 브랜치나 커밋명 혹은 태그가 될 수 있다.
$ git branch <새로운 브랜치> <브랜치를 생성할 위치> |
기존의 브랜치를 새로운 브랜치로 덮어쓰기
$ git branch –f <기존 브랜치> [<브랜치를 생성할 위치>] |
브랜치를 옮기거나 브랜치명 변경하기
…<새로운 브랜치>가 존재하지 않을 경우 $ git checkout –m <기존 브랜치> <새로운 브랜치> |
…브랜치를 무조건 덮어쓴다.
$ git checkout –M <기존 브랜치> <새로운 브랜치> |
다른 브랜치를 현재 브랜치로 합치기
$ git merge <브랜치> |
커밋하지 않고 합치기
$ git merge --no-commit <브랜치> |
선택하여 합치기
$ git cherry-pick <커밋명> |
커밋하지 않고 선택하여 합치기
$ git cherry-pick –n <커밋명> |
브랜치의 이력을 다른 브랜치에 합치기
$ git merge --squash <브랜치> |
브랜치 삭제하기
…삭제할 브랜치가 현재 브랜치에 합쳐졌을 경우에만 $ git branch –d <삭제할 브랜치> |
…삭제할 브랜치가 현재 브랜치에 합쳐지지 않았어도 $ git branch –D <삭제할 브랜치> |
1.4. 이력
모든 이력 보기
$ git log |
변경 사항을 보여주는 패치와 함께 로그 표시하기
$ git log –p |
1개의 항목만 보이도록 로그 개수 제한하기
$ git log -1 |
20개의 항목과 패치만 보이도록 로그제한하기
git log -20 –p |
6개월 동안의 커밋 로그 보기
$ git log –since=”6 months” |
2일 전까지의 커밋 로그 보기
$ git log –before=”2 days” |
HEAD 보다 3개 이전의 커밋 로그 보기
$ git log -1 HEAD-3 or $ git log -1 HEAD^^^ or $ git log -1 HEAD~1^^ |
두 지점 사이의 커밋 로그 보기
<시작 지점>과 <끝 지점>은 커밋명이나 브랜치명 혹은 태그명이며, 조합하여 사용할 수 있다.
$ git log <시작 지점>…<끝 지점> |
각 항목의 로그 이력 한 줄씩 보기
$ git log –pretty=oneline |
각 항목마다 영향 받은 줄의 통계보기
$ git log --stat |
커밋할 시점의 파일 상태 보기
$ git log --name-status |
현재 작업 트리와 인텍스의 차이점 보기
$ git diff |
인덱스와 저장소의 차이점 보기
$ git diff --cached |
작업트리와 저장소의 차이점 보기
$ git diff HEAD |
작업트리와 특정 위치 간의 차이점 보기
<시작지점>은 커밋명이나 브랜치명 혹은 태그명이다. $ git diff <시작지점> |
저장소의 두 지점 사이의 차이점 보기
$ git diff <시작지점> <끝 지점> |
차이점의 통계보기
$ git diff --stat <시작지점> [<끝지점>] |
파일의 커밋 정보 줄 단위로 보기
$ git blame <file> |
파일의 줄 단위의 복사, 붙여 넣기, 이동 정보 보기
$ git blame –C –C <file> |
로그에서 복사와 붙여 넣은 정보 보기
$ git log –C –C –p 1 <특정 지점> |
1.5. 원격 저장소
저장소 복제하기
$ git clone <저장소> |
마지막 200개의 커밋만 포함하여 저장소 복제하기
$ git clone –depth 200 <저장소> |
새로운 원격 저장소 추가하기
$ git remote add <원격 저장소> <저장소 url> |
모든 원격 브랜치 목록 보기
$ git branch –r |
원격 브랜치에서 지역 브랜치 생성하기
$ git branch <새로운 브랜치> <원격 브랜치> |
원격 태그에서 지역 브랜치 생성하기
$ git branch <새로운 브랜치> <원격 태그> |
origin 저장소에서 합치지 않고 지역 브랜치로 변경 사항 가져오기
$ git fetch |
원격 저장소에서 합치지 않고 지역 브랜치로 변경 사항 가져오기
$ git fetch <원격 저장소> |
원격 저장소에서 변경 사항을 가져와 현재 브랜치에 합치기
$ git pull <원격 저장소> |
origin 저장소에서 변경 사항을 가져와 현재 브랜치에 합치기
$ git pull |
지역 브랜치를 원격 브랜치에 푸싱하기
$ git push <원격 저장소> <지역 브랜치>:<원격 브랜치> |
지역 브랜치를 동일한 이름의 원격 브랜치에 푸싱하기
$ git push <원격 저장소> <지역 브랜치> |
새로운 로컬 브랜치를 원격 저장소에 푸싱하기
$ git push <원격 저장소> <지역 브랜치> |
지역 변경 사항을 origin 저장소에 푸싱하기
이러한 방식은 origin 저장소에 존재하는 브랜치에만 푸싱한다. $ git push |
원격 브랜치 삭제하기
$ git push <원격 저장소> :<원격 브랜치> |
원격 저장소에서 쓸모가 없어진 원격 브랜치 제거하기
$ git remote prune <원격 저장소> |
원격 저장소를 제거하고 관련된 브랜치도 제거하기
$ git remote rm <원격 저장소> |
1.6. Git과 SVN 연결하기
서브버전 저장소 전체를 복제하기
$ git svn clone <svn 저장소> |
표준 레이아웃을 사용하는 서브버전 저장소 전체를 복제하기
표준대로 trunk와 branches 및 tags를 저장소 구조로 사용하는 저장소를 복제할 때 사용한다. $ git svn clone –s <svn repository> |
비표준 레이아웃을 사용하는 서브버전 저장소 전체를 복제하기
$ git svn clone –T <트렁크 경로> -b <브랜치 경로> -t <태그 경로> <svn 저장소> |
표준 레이아웃을 사용하는 서브버전 저장소 전체를 복제하기
$ git svn clone –s –r 2321 |
표준 레이아웃을 사용하는 서브버전 저장소를 복제하고, 모든 원격 브랜치에 접두어를 추가하기
$ git svn clone –s --prefix svn/ <svn 저장소> |
상위의 서브버전 저장소에서 갱신하고 재정렬 하기
$ git svn rebase |
상위의 서브버전 저장소에 커밋 푸싱하기
$ git svn dcommit |
상위 서브버전 저장소에 푸싱될 커밋 목록 보기
$ git svn dcommit –n |
서브버전 저장소 로그 보기
$ git svn log |
서브버전 저장소 파일의 커밋정보 줄단위로 보기
$ git svn blame <파일> |
'형상관리 > Git' 카테고리의 다른 글
Git, 분산버전 관리시스템(14) - 기타 자료와 도구 (0) | 2012.04.23 |
---|---|
Git, 분산버전 관리시스템(12) - Gitosis를 이용하여 Git 서버 운용하기 (0) | 2012.04.23 |
Git, 분산버전 관리시스템(11) - Git으로 옮겨가기 (0) | 2012.04.23 |
Git, 분산버전 관리시스템(10) – 기본을 넘어서 (0) | 2012.04.23 |
Git, 분산버전 관리시스템(9) - 저장소 조직하기 (0) | 2012.04.23 |
Git, 분산버전 관리시스템(8) - 원격 저장소를 이용하여 작업하기 (0) | 2012.04.23 |
Git, 분산버전 관리시스템(7) - Git 이력 이용하기(2) – 변경 취소하기 (0) | 2012.04.23 |
Git, 분산버전 관리시스템(6) - Git 이력 이용하기(1) – 로그/리비전범위/버전간차이점/blame/내용따라가기 (0) | 2012.04.23 |
Git, 분산버전 관리시스템(5) - 브랜치 이해하고 활용하기 (0) | 2012.04.23 |
Git, 분산버전 관리시스템(4) – Git 기초: 추가하고 커밋하기 (0) | 2012.04.23 |