development

역사를 보여주는 힘내 비난

big-blog 2020. 9. 11. 19:18
반응형

역사를 보여주는 힘내 비난


msysgit을 사용하여 파일에서 git blame을 실행하면 항상 다음과 같은 종류의 출력물이 나타납니다.

00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   1) package co
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   2) {
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   3)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   4)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   5)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   6)      impor
00000000 (Not Committed Yet 2011-01-09 11:21:30 +0200   7)      impor

즉, 모든 행이 아직 커밋되지 않음으로 표시됩니다.

나는 많은 커밋을 가진 많은 파일에서 이것을 시도했습니다-항상 동일한 결과. 나는 또한 상대 / 전체 경로를 사용해 보았지만 아무런 차이가없는 것 같습니다.

TortoiseGit의 비난을 사용하려고 할 때 항상 모든 줄이 첫 번째 커밋에서 마지막으로 커밋 된 것으로 표시됩니다.

대체 텍스트

내가 말했듯이이 파일의 역사에는 실제로 수십 개의 커밋이 있다고 생각했습니다 ..

아이디어?

편집-추가 정보

  • Git blame은이 저장소가 호스팅되는 GitHub에서 잘 작동합니다.
  • 내가 그것을 리눅스 머신에 복제하고 거기에서 비난을하면 잘 작동합니다.
  • msysgit에서만 작동하지 않는 것 같습니다.

git blame file.txt작업 복사본에서 file.txt의 버전을 비난합니다. file.txt에 저장소에 Windows-newlines (CRLF)가 있고.이있는 core.autocrlf = true경우 file.txt의 모든 줄은 다른 것으로 간주되며 git blame아직 커밋되지 않은 것으로보고됩니다 .

작동하는 이유 git blame <my_branch>(또는 더 나은 git blame HEAD브랜치에 상관없이 작동 함)는 작업 복사본 버전을 비난하지 않으므로 아직 커밋되지 않은 줄에 대한 가능성이 없기 때문입니다.


해결책을 찾았습니다-매우 이상합니다.

이것을 실행하면 :

git blame file.txt

위에 게시 된대로 역사가 깨졌습니다.

대신 이렇게하면 :

git blame my_branch file.txt

효과가있다!

AFAICS 사용에 분기 이름이 필요하지 않기 때문에 이것은 매우 이상합니다.

$ git blame
usage: git blame [options] [rev-opts] [rev] [--] file

git 2.0.1 (2014 년 6 월 25 일)부터 git blame은 모든 "Not Yet Committed"줄보고를 중지해야합니다.

brian m의 commit 4d4813a (2014 년 4 월 26 일) 참조 칼슨 ( bk2204) .
(Merged by Junio ​​C gitsterHamano -- in commit e934c67 , 06 Jun 2014)

blame: 파일을 올바르게 처리합니다. autocrlf

파일이로 CRLF끝나는 저장소에있는 줄이 포함 된 경우 수정되지 않은 경우에도 core.autocrlf=input줄을 항상 " Not Committed Yet" 로 표시했습니다 . 설정에
관계없이 비난이 올바르게 작동하도록 가짜 커밋을 만들 때 줄 끝을 변환하지 마십시오 autocrlf.


또 다른 가능성 : 대소 문자 구분 파일 이름 오타

나는 git blame file.txt와 같은 문제가 있었고 file.txt로 대소 문자를 구분하는 파일 이름 오타를 만들었다는 것을 깨달았습니다.

예를 들어 File.txt로 변경하고 my_branch를 지정하지 않아도 예상되는 결과를 얻었습니다. git blame File.txt

참고 URL : https://stackoverflow.com/questions/4638500/git-blame-showing-no-history

반응형