2019.08.13 Git 튜토리얼 보며 따라하기 - gitignore, git log

1. gitignore
.gitignore 파일에 입력하는 패턴은 아래 규칙을 따른다.

1) #은 주석으로 인식한다.
2) 표준 Glob 패턴을 사용한다. 이는 프로젝트 전체에 적용된다.
3) 슬래시(/)로 시작하면 하위 디렉토리에 적용되지(Recursivity) 않는다.
4) 디렉토리는 슬래시(/)를 끝에 사용하는 것으로 표현한다.
5) 느낌표(!)로 시작하는 패턴의 파일은 무시하지 않는다.

Example)

# 확장자가 .a인 파일 무시
*.a

# 윗 라인에서 확장자가 .a인 파일은 무시하게 했지만 lib.a는 무시하지 않음
!lib.a

# 현재 디렉토리에 있는 TODO파일은 무시하고 subdir/TODO처럼 하위디렉토리에 있는 파일은 무시하지 않음
/TODO

# build/ 디렉토리에 있는 모든 파일은 무시
build/

# doc/notes.txt 파일은 무시하고 doc/server/arch.txt 파일은 무시하지 않음
doc/*.txt

# doc 디렉토리 아래의 모든 .pdf 파일을 무시
doc/**/*.pdf


2. Git Log

git log -p -2 : 최근 2개 commit의 diff 한 결과를 보여준다. 히스토리를 보는 동시에 diff까지 보고싶을 때 유용하다.
git log --stat : commit 의 status를 보여준다.
git log --pretty=[oneline, short, full, fuller] : 로그를 조금씩 다른 형식으로 가감해서 보여준다.
git log --pretty=format: [various options] : 로그를 원하는 포맷으로 만들 수 있다. 포맷의 알리아스는 여기를 참고.
예로, 이렇게 쓰면 좋다.
git log --pretty=format:"%h - %cn : %ad" --graph  (h = hash, cn = committer name, ad = author date)
author와 committer는 다를 수 있다. (패치를 만든 사람과 author, 이 패치를 받아서 적용하고 커밋한 사람(committer)이 다를 수 있기 때문)

git log --since=[2.weeks, 1.day]

'BEST': git log -S code : 이 옵션은 코드에서 추가되거나 제거된 내용 중에 특정 텍스트가 포함되어 있는지를 검색한다. 예를 들어 어떤 함수가 추가되거나 제거된 커밋만을 찾아보려면 아래와 같은 명령을 사용한다.
git log -S nextPlayer : nextPlayer 코드가 바뀌거나 추가된 commit 히스토리만을 보여줌.
이걸로 commit hash를 찾고 git log -p commit hash < 이런식으로 사용하면 유용해보인다.


댓글

이 블로그의 인기 게시물

로컬 Tomcat 서버 실행속도 개선

2019.05.23 - SQLAlchemy 의 객체 상태 관리 (expire, refresh, flush, commit) 에 관한 이해

2020.02.17 Python의 multiprocessing 중 Pool.map(), chunksize에 관한 내용