-
1. 시작하기
-
2. Git의 기초
- 2.1 Git 저장소 만들기
- 2.2 수정하고 저장소에 저장하기
- 2.3 커밋 히스토리 조회하기
- 2.4 되돌리기(Undo)
- 2.5 리모트 저장소
- 2.6 Tag(Tag)
- 2.7 팁과 트릭
- 2.8 요약
-
3. Git 브랜치
- 3.1 브랜치란 무엇인가?
- 3.2 브랜치와 Merge의 기초
- 3.3 브랜치 관리
- 3.4 브랜치 Workflow
- 3.5 리모트 브랜치
- 3.6 Rebase하기
- 3.7 요약
-
4. Git 서버
- 4.1 프로토콜
- 4.2 서버에 Git 설치하기
- 4.3 SSH 공개키 만들기
- 4.4 서버 설정하기
- 4.5 공개하기
- 4.6 GitWeb
- 4.7 Gitosis
- 4.8 Gitolite
- 4.9 Git 데몬
- 4.10 Hosted Git
- 4.11 요약
-
5. 분산 환경에서의 Git
- 5.1 분산 환경에서의 Workflow
- 5.2 프로젝트에 기여하기
- 5.3 프로젝트 운영하기
- 5.4 요약
-
6. Git 도구
- 6.1 리비전 조회하기
- 6.2 대화형 명령어
- 6.3 Stashing
- 6.4 히스토리 단장하기
- 6.5 Git으로 버그 찾기
- 6.6 서브모듈
- 6.7 Subtree Merge
- 6.8 요약
-
7. Customizing Git
- 7.1 Git 설정하기
- 7.2 Git Attribute
- 7.3 Git 훅
- 7.4 정책 구현하기
- 7.5 요약
-
8. Git과 다른 VCS
- 8.1 Git과 Subversion
- 8.2 Git으로 옮기기
- 8.3 요약
-
9. Git의 내부구조
- 9.1 Plumbing 명령과 Porcelain 명령
- 9.2 Git 개체
- 9.3 Git 레퍼런스
- 9.4 Packfile
- 9.5 Refspec
- 9.6 데이터 전송 프로토콜
- 9.7 운영 및 데이터 복구
- 9.8 요약
2.7 Git의 기초 - 팁과 트릭
팁과 트릭
Git의 기초를 마치기 전에 Git을 좀 더 쉽고 편안하게 쓸 수 있게 만들어 줄 몇 가지 팁과 트릭도 설명한다. 이런 팁 없이 Git을 사용하는 사람들도 많다. 우리는 이 책에서 더는 이런 팁을 거론하지 않을 것이고 당신이 이런 팁을 알고 있다고 가정할 것이다. 그래서 알고 있는 것이 좋다.
자동완성
Bash 쉘을 쓰고 있다면 멋진 자동완성(Auto-completion) 기능을 사용할 수 있다. Git의 소스코드를 다운받아 contrib/completion 디렉토리를 살펴보면 git-completion.bash라는 파일이 있을 것이다. 그 파일을 홈 디렉토리에 카피하고 .bashrc 파일에 다음과 같은 내용을 추가하자:
source ~/.git-completion.bash
또 모든 사용자가 사용할 수 있게 설정할 수 있다. Mac 시스템이라면 이 스크립트를 /opt/local/etc/bash_completion.d 디렉토리에 복사하고 리눅스라면 /etc/bash_completion.d/에 복사한다. 이 디렉토리는 Bash가 자동완성을 지원하기 위해 사용하는 디렉토리다.
윈도우에 msysGit을 설치해서 Git Bash를 사용하는 경우에는 자동완성이 미리 설정되어 있다.
Git 명령을 입력할 때 <Tab> 키를 누르면 Git이 제안하는 명령들이 출력된다:
$ git co<tab><tab>
commit config
이 경우 git co를 입력하고 Tab 키를 두번 누르면 commit과 config를 제안한다. 이 때 m<tab>을 입력하면 자동으로 git commit명령을 완성한다.
옵션에도 이 기능이 되고 더 유용하다. 예를 들어 git log명령을 실행하는데 옵션이 전혀 기억나지 않는다면 다음과 같이 입력하고 Tap 키를 누르면 다음과 같은 옵션을 제안한다:
$ git log --s<tab>
--shortstat --since= --src-prefix= --stat --summary
이건 상당히 멋진 팁이다. 아마 문서를 찾아보는 등의 시간을 절약해 줄 것이다.
Git Alias
명령을 완벽하게 입력하지 않으면 Git은 알아듣지 못한다. Git의 명령을 전부 입력하는 것이 귀찮다면 git config를 사용하여 각 명령의 Alias을 쉽게 만들 수 있다. 다음은 Alias을 만드는 예이다:
$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status
이제 git commit 대신 git ci만으로도 커밋할 수 있다. Git을 계속 사용한다면 다른 명령어도 자주 사용하게 될 것이다. 자주 사용하는 명령은 Alias을 만들어 편하게 사용한다.
이미 있는 명령을 편리하고 새로운 명령으로 만들어 사용할 수 있다. 예를 들어 파일을 Unstage 상태로 변경하는 명령을 만들어서 불편함을 덜 수 있다. 다음과 같이 unstage 라는 Alias을 만든다:
$ git config --global alias.unstage 'reset HEAD --'
다음 두 명령은 동일하게 동작한다:
$ git unstage fileA
$ git reset HEAD fileA
한결 간결해졌다. 추가로 last 명령을 만들어 보자:
$ git config --global alias.last 'log -1 HEAD'
이제 최근 커밋을 좀 더 쉽게 확인할 수 있다:
$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646
Author: Josh Goebel <dreamer3@example.com>
Date: Tue Aug 26 19:48:51 2008 +0800
test for current head
Signed-off-by: Scott Chacon <schacon@example.com>
이것으로 쉽게 새로운 명령을 만들 수 있다. 그리고 Git의 명령어뿐만 아니라 외부 명령어도 실행할 수 있다. !를 제일 앞에 추가하면 외부 명령을 실행한다. 다음은 git visual이라고 입력하면 gitk가 실행된다:
$ git config --global alias.visual '!gitk'