Git에서 파일 히스토리를 보는 방법은 무엇입니까?


133

Subversion을 사용하면 TortoiseSVN을 사용하여 파일의 기록 / 로그를 볼 수 있습니다.

Git으로 어떻게 할 수 있습니까?

특정 파일의 기록 레코드를 찾은 다음 다른 버전을 비교할 수 있습니다.

답변:


156

git log커밋 기록을 보는 데 사용 합니다. 각 커밋에는 해시 키 (예 : 14b8d0982044b0c49f7a855e396206ee65c0e787b410ad4619d296f9d37f0db3d0ff5b9066838b39) 와 관련된 개정 지정자가 있습니다. 두 개의 다른 커밋 간의 차이점을 보려면 다음 git diff과 같이 두 커밋의 개정 지정자의 처음 몇 문자를 사용하십시오.

# diff between commits 14b8... and b410...
git diff 14b8..b410
# only include diff of specified files
git diff 14b8..b410 path/to/file/a path/to/file/b

당신이에서 일어난 모든 차이를 통해 개요를 얻고 싶은 경우에, 사용 커밋 커밋 git log또는 git whatchanged패치 옵션을 :

# include patch displays in the commit history
git log -p
git whatchanged -p
# only get history of those commits that touch specified paths
git log path/a path/b
git whatchanged path/c path/d

7
-p tip 덕분에 약간의 코드가 포함 된 개정판을 찾는 데 매우 유용합니다.
Christopher Pickslay

100

git diff 및 / 또는 git log 원하는 것 같습니다 . 또한 gitk를 확인하십시오

gitk path/to/file
git diff path/to/file
git log path/to/file

3
다음은 git repo에서 단일 파일의 모든 스냅 샷을 탐색하는 좋은 방법을 제공하는 gitk의 또 다른 끄덕임입니다.
Ray Brown

1
기본적으로 gitk는 diff와 10 줄의 문맥을 보여 주지만, 전체 파일의 스냅 샷을보고 싶다면 어떻게해야합니까? "컨텍스트 라인"을 큰 값 (예 : 100000)으로 설정하십시오. 그런 다음 커밋간에 앞뒤로 넘길 수 있으며 다른 시점에서 전체 파일을 볼 수 있습니다. (파일 내에서 검색 할 수도 있습니다.)
antinome

35

gitk name_of_file 을 사용하고 싶습니다.

이것은 모든 파일에 대한 변경 사항을 표시하는 대신, 각 커밋에서 파일에 발생한 변경 사항의 좋은 목록을 보여줍니다. 발생한 것을 쉽게 추적 할 수 있습니다.


30

멋진 ncurses 기반 git 저장소 브라우저에 tig 를 사용할 수도 있습니다 . 파일 히스토리를 보려면

tig path/to/file

29

내가 가장 좋아하는 것은이며 git log -p <filename>, 주어진 파일의 모든 커밋 내역과 각 커밋에 대한 차이점을 제공합니다.


11

를 포함한 많은 망할 놈의 역사 브라우저 git log(그리고 '자식 로그 --graph'), gitk이 (은 Tcl / Tk의에서, 망할 놈의 일부), (Qt는에서) QGit, 술래 잡기 (자식에 텍스트 모드 인터페이스, ncurses를 사용), 웃었 (의 GTK +), TortoiseGit 및 git-cheetah는 경로 제한을 지원합니다 (예 :) gitk path/to/file.


@ RobertVuković 나는 이것이 오래된 질문이라는 것을 알고 있지만 아래 답변을 참조하십시오!
brianc

4

가능한 한 TortoiseSVN을에 가까운 무언가를 원한다면 물론, 당신은 사용할 수 TortoiseGit을 .


TortoiseSvn 셸 확장에는 단일 파일의 기록을 표시하는 명령이 포함되어 있지만 TortoiseGit에는 없습니다.
Neutrino

3

git log --all -- path/to/file 작동해야합니다


내 답변 @ineersa에 링크가 없습니다
Edson Medina

1
이것이 최고의 답변이되어야합니다. 나는 crappy gui 도구를 사용하는 것을 좋아하지 않는다
Grobi


2

TortoiseGit은 파일 히스토리를 볼 수있는 명령 행 도구 도 제공 합니다. PowerShell 사용 :

C:\Program` Files\TortoiseGit\bin\TortoiseGitProc.exe /command:log /path:"c:\path\to\your\file.txt"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.