GIT(깃)

git은 리누즈 토르발즈가 개발한 분산버전관리 시스템이다. 리눅스의 소스코드를 관리하기 위해서 만들었는데 성능이 너무나 뛰어나서 전세계에서 사용될 정도이다. 분산버전관리 시스템이기 때문에 중앙서버가 없어도 잘 동작하며 혹시 저장소중 한곳이 날아가더라도 단순히 로컬에 있는 것을 재 업로드 하면 복구가 가능하기 때문에 소스코드를 잃어버리기 극히 어렵다.

설치방법

튜토리얼 & 참고자료

Plugins

  • passport - 커밋시 커미터 이름과 이메일을 변경할 필요가 있다면 강추. 커밋하는 이름과 이메일을 손쉽게 변경하게 해준다.
  • ignore - .gitignore 파일을 손쉽게 만들수 있게 해준다.

Tips

  • git 저장소가 너무 커서 못받는다면 (ex. 안드로이드 소스코드) git clone --depth 1을 사용하면 히스토리는 받지 않는다. 이를 shallow clone이라 한다.
  • git의 branch 스타일에 de-factor는 git flow이다
  • git inital commit을 빈커밋을 하고 싶을 떄가 종종 있다. 그럴때는 git commit --allow-empty 를 사용하면 된다. 물론 첫커밋이 아니더라도 쓸수 있다.
  • git diff를 vimdiff로 사용하기
  • git에서 공통 조상을 찾고 싶을때는 git merge-base를 쓰면 된다.
  • 특정 커밋이 포함되어 있는 태그를 찾을때는 git tag --contains를 쓰면 된다.
    • 브랜치를 찾을때는 당연히 tagbranch로 바꾸면 된다.
  • git add 시에 파일 단위가 아닌 라인 단위로 추가할 내용을 정할수 있다. --edit 옵션을 사용하면 된다. 다만, chuck 를 직접 수정해야 하기에 사전지식이 필요하다.
    • 편집후 적용이 잘 안될때는 각 라인 맨처음에 공백을 잘확인 해야 한다. 변경을 적용하지 않기 위해서는 +- 를 공백으로 바꾸어야 하는데 단순히 지워버리면 적용이 안된다.
  • 두 commit 의 공통 조상 찾기
    • git merge-base

See Also


  1. 리눅스라면 git을 패키지 관리자에 넣어두지 않았을리 없다.