프로 Git 읽는 법

Git은 서브버전보다 사용하기 어렵다. 아마 대중적인 버전관리도구 중 가장 어려울 것이다. 서브버전은 따로 공부하지 않고 썼던 개발자라도, Git을 쓰려면 공부를 해야한다. Git을 공부하는 최고의 방법은 책 '프로 Git'을 읽는 것이다. 프로 Git을 처음 읽는 순간 그것을 확신했으며, 이후 사용자로서 Git을 익히고, 부분적으로 Git을 구현해보기도 하고, 사내에 Git 교육과정을 만들어 진행해본 이후에도 그 생각은 변하지 않았다. … 프로 Git 읽는 법 계속 읽기

Git의 Staging Area는 어떤 점이 유용한가

Git에는 Staging Area라는 공간이 있다. 어떤 변경사항이 저장소에 커밋되기 전에, 반드시 거쳐야만 하는 중간단계이다. 다른 버전관리도구에는 이에 정확히 대응하는 것은 없다. 저장소가 추적하는(관심의 대상이 되는) 파일들의 목록을 유지하고, 그 파일들에 대한 메타데이터를 관리하는 것은 다른 저장소들도 하는 일이지만, Git 처럼 커밋될 예정인 파일의 내용들까지 기억하지는 않는다. 이 Staging Area의 존재는 처음 Git을 사용하는 입장에서는 그저 … Git의 Staging Area는 어떤 점이 유용한가 계속 읽기

git의 revision에 대해

git에서 revision이란 특정 Git object를 가리킬 수 있는 표현식을 의미한다. HEAD~2, master, a8dd808db6d87a1d809b1a223e08ab69602b2d3a, HEAD:test.txt 등이 모두 "revision"이다. 문법 ABNF 로 표현해보면 대략 다음과 같다. DIGIT = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" sha1 = 1*40HEXDIGIT refname = name / "refs" "/" (name … git의 revision에 대해 계속 읽기

git에서 특정 파일만 남기기 (git 기반 위키에서 특정 파일만 공개하기)

코드저장소에서 실수로 절대 넣어서는 안되는 파일을 넣어 버렸을 때, git의 filter-branch 명령을 사용하면 간단하게 특정 파일만 제외시키고 전체 히스토리를 재구축하는 것이 가능하다. 그러나 반대로 특정 파일만 남기는 것은 조금 까다롭다. filter-branch를 응용해서 남기고자 하는 파일 외에는 모두 삭제하면서 히스토리 전체를 재구축하는 방법이 있긴 한데, 속도도 느리고 잘 동작하게 만들기도 쉽지가 않다. 사실 일반적인 소프트웨어 개발 … git에서 특정 파일만 남기기 (git 기반 위키에서 특정 파일만 공개하기) 계속 읽기

Git의 blob은 어떻게 발음하는가.

Git 메일링 리스트에 문의해 본 결과, 일반명사 blob과 같이 블랍으로 발음하는 것이 맞다고 한다. 사실 이걸 어떻게 발음하는 것이 맞는가에 대해서는 어디에도 명시되어 있지 않다. gitglossary에도 없다. 일반적으로 database에서는 blob이 binary large object라는 의미로 쓰이고, 비랍(bee-lab)으로 발음하지만 Git에서는 그런 의미가 아닌지도 모르겠다. 단 두 명이 답을 주었을 뿐이긴 하지만, 이 메일링 리스트는 Git 개발자와 사용자가 … Git의 blob은 어떻게 발음하는가. 계속 읽기

디스크 공간 절약을 위해 파일을 Git 저장소에 보관하기

SSD를 쓰기 시작하면서 디스크 공간이 굉장히 소중해졌다. 그래서 잘 안 쓰는 파일들은 zip으로 압축해서 저장하곤 하지만 뭔가 파일 하나가 보고 싶을 때는 꺼내기가 좀 불편하다. 대안은 Git bare 저장소로 보관하는 것이다. 이 방법은 공간도 적게 사용하면서 필요할 때 gut 명령으로 간단히 파일을 꺼내 볼 수도 있다. 뿐만 아니라 Git 저장소는 굉장히 공간효율적이다. 때때로 gzip으로 압축했을 … 디스크 공간 절약을 위해 파일을 Git 저장소에 보관하기 계속 읽기

git bisect 응용 – 줄바꿈 문자 잘못 넣은 사람 찾기

나는 언제나 줄바꿈 문자를 '\n'로 통일한다. 내가 참여하는 모든 프로젝트에서도 그러하다. 그러나 윈도 사용자들은 기본적으로 '\r\n'을 사용하도록 되어있으므로, IDE나 편집기에서 혹은 Git에서 설정을 변경해주지 않는 이상 줄바꿈 문자가 '\r\n'이 된다. 이로 인해 다양한 OS를 사용하는 개발자들이 함께 같은 프로젝트에서 개발을 하다보면 내가 작성한 코드에 누군가 '\r\n'을 집어넣어 심란해지는 일이 종종 있다. 누가 집어넣었는지 찾아내고 싶지만 … git bisect 응용 – 줄바꿈 문자 잘못 넣은 사람 찾기 계속 읽기