git/gerrit 사용시 알아야 할 것

git과 gerrit 을 사용할 때 최소한 알아야 하는 것을 정리한 것으로 회사 내의 git 교육 담당자에게 교육 시 필요한 내용을 정리해서 보낸 내용이다. 이거 다 알면 git 잘 쓴다^^
이것을 차례로 삼아 세부 내용을 하나씩 문서로 만들어 정리하자.

추가1: 이미 http://namhyung.springnote.com/pages/3132772 에 git 사용자 설명서가 있다. 저 namhyung님이 내가 아는 우분투 쪽 김남형 님일까 ㅎㅎ

추가2: http://git-scm.com/book/ko 번역자에게 축복을…

* git
1. Git의 Repository 개념과 clone 의 개념, clone

2. Git의 remote branch와 local branch 간 차이, fetch
3. Remote 브랜치로부터 local branch 를 최신으로 업데이트 하는 방법, pull/rebase의 이해
4. 수정 반영 방법, Git의 Staging area 개념과 작업 방법, add/commit 의 이해, commit -s 옵션
5. Commit 을 수정하는 방법, commit –amend 의 이해
6. Push 방법 – Gerrit의 refs/for/* 개념 이해, push의 이해, push 시의 refs spec 이해
7. Log를 확인하는 방법, log
8. Commit 간 차이(diff)를 확인하는 방법, diff
9. 특정 시점의 소스로 돌아가는 방법, reset
10. 특정 소스 파일을 특정 시점으로 되돌리는 방법, checkout
11. Backout 방법, revert
12. local 브랜치를 만드는 방법, branch
13. remote 브랜치나 local 브랜치로 local 소스를 만드는 방법, checkout
14. cherry-pick 의 이해, cherry-pick
15. patch 파일 만들기와 패치 적용 방법, , format-patch/am
16. merge 방법 및 merge commit이 무엇인지, merge
17. rebase 나 merge 시의 conflict 해결 방법

* gerrit
1. 그룹의 정의 및 권한 이해
2. Verify 방법 – Verify 의 의미 이해
3. Review 방법 – Inline comments 작성 및 cover message 작성(+ 한글 작성 가능 알림)
4. Gerrit 에서 cherry-pick 하기
5. Gerrit 에서 checkout 하기
6. Gerrit 에서 같은 Change의 Patch set 업데이트 하기
7. Submit 시의 동작 이해

Windows XP 디스크 정리 해제

램디스크 쓰는데 자꾸 디스크 정리 하란다.. 디스크 정리 옵션을 아예 꺼버리자.

1. regedit
2. HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion / policies / Explorer
3. 우클릭 / 새로 만들기 / DWORD 값
4. “NoLowDiskSpaceChecks” 입력
5. 만들어진 항목에 더블클릭 후 “값 데이터”에 “1”

참고 : “디스크 공간 부족 메세지”를 끄는 방법 (win XP)

GNU make 확장자 규칙, 패턴 규칙

GNU Make에 대해서 아주 간략하면서도 핵심적인 내용들을 적어놓은 문서가 있길래 모르거나, 쓸 때마다 헷갈렸던 내용들을 정리해 둔다.

확장자 규칙, 패턴 규칙

전통적인 형식

.c.o:

gcc -c ${CFLAGS} $<

GNU make 확장 기능
%.o: %.c
gcc -c -o $@ ${CFLAGS} $<
기호 정리

$< 입력 파일, 콜론의 오른쪽에 오는 패턴을 치환
$@ 출력 파일, 콜론의 왼쪽에 오는 패턴을 치환
$* 입력 파일에서 확장자(.c, .s 등)을 떼어낸 파일명

예제

%_dbg.o: %.c
gcc -c -g -o $@ ${CFLAG} $<

DEBUG_OBJECTS = main_dbg.o edit_dbg.o

edimh_dbg: $(DEBUG_OBJECTS)

gcc -o $@ $(DEBUG_OBJECTS)
매크로 조건
예제
ifdef XPM
LINK_DEF = -DXPM
endif

$make XPM=yes


주의사항
타겟 아래의 명령에 대해서는 하나의 행이 각각의 쉘에서 실행됨. 순차적이 아님. 순차적인 실행을 원할 때는 ‘;’ 와 ‘\’ 를 이용.
예제
target:
cd obj ; \
HOST_DIR=/hom/e ; \
mv *.o $$HOST_DIR