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 push <원격 저장소> :<원격 브랜치>

 

원격 저장소에서 쓸모가 없어진 원격 브랜치 제거하기

$ git remote prune <원격 저장소>

 

원격 저장소를 제거하고 관련된 브랜치도 제거하기

$ git remote rm <원격 저장소>

 

 

 

1.6.        GitSVN 연결하기

서브버전 저장소 전체를 복제하기

$ git svn clone <svn 저장소>

 

표준 레이아웃을 사용하는 서브버전 저장소 전체를 복제하기

표준대로 trunkbranches 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 <파일>

 

출처 : http://youmin3.egloos.com/1991150

+ Recent posts