programing

git bloss'는 무엇을 합니까?

javamemo 2023. 5. 25. 21:23
반응형

git bloss'는 무엇을 합니까?

사용 방법에 대한 질문을 많이 보았습니다.git blame하지만 저는 그들을 잘 이해하지 못합니다.

GitHub 인터페이스의 파일 위에 버튼이 있습니다.클릭하면 왼쪽 막대에 사용자 이름과 다른 몇 가지가 표시됩니다.그것은 무엇을 의미합니까?

왜?git blame깃허브를 제외하고 실제로 사용되었습니까?

Git-blame에서:

해당 파일의 각 줄에 마지막으로 해당 줄을 수정한 개정판의 정보를 주석으로 달습니다.선택적으로 지정된 리비전에서 주석 달기를 시작합니다.

한 번 이상 지정하면 -L은 주석을 요청된 줄로 제한합니다.

예:

johndoe@server.com:~# git blame .htaccess
...
^e1fb2d7 (John Doe 2015-07-03 06:30:25 -0300  4) allow from all
^72fgsdl (Arthur King 2015-07-03 06:34:12 -0300  5)
^e1fb2d7 (John Doe 2015-07-03 06:30:25 -0300  6) <IfModule mod_rewrite.c>
^72fgsdl (Arthur King 2015-07-03 06:34:12 -0300  7)     RewriteEngine On
...

로 참로입니다.git blame에는 시간 단위 의미의 행별 수정 내역이 표시되지 않습니다.마지막으로 문서의 줄을 변경한 사용자가 다음 기간의 마지막 커밋까지 표시됩니다.HEAD.

, 줄의 내역 ", " " " " " " " " " " " " " " " " 을 .git blame path/to/file각커다의 각git log.

어떤 동료가 구체적인 대사를 썼는지, 아니면 프로젝트를 망쳤는지 파악하는 것이니, 그들을 탓할 수 있습니다 :)

GitHub에서:

책임 명령은 파일을 변경한 사용자를 결정하는 데 도움이 되도록 설계된 Git 기능입니다.

부정적으로 들리는 이름에도 불구하고, gitback은 실제로 매우 무해합니다. 주요 기능은 파일에서 누가 어떤 줄을 변경했는지, 왜 변경했는지를 지적하는 것입니다.코드의 변경 사항을 식별하는 데 유용한 도구가 될 수 있습니다.

기적으로본,git-blame는 파일의 각 행을 마지막으로 수정한 수정본 및 작성자를 표시하는 데 사용됩니다.그것은 파일의 개발 이력을 확인하는 것과 같습니다.

git blame명령은 파일에 대한 최근 변경 사항에 대해 누가/어떤 커밋을 담당하는지 파악하는 데 사용됩니다.각 행의 작성자/커밋도 볼 수 있습니다.

git blame filename을 지다 (코commits의모든라대변대있책음한임이에경한인에드)

git blame filename -L 0,10에서 "10이 있음) ("0" 라인에서 "10" 라인으로 변경)

비난할 수 있는 다른 많은 옵션들이 있지만, 일반적으로 이것들은 도움이 될 수 있습니다.

git blame명령은 파일의 내용을 한 줄씩 검사하고 각 줄이 마지막으로 수정된 날짜와 수정한 작성자를 확인하는 데 사용됩니다.

만약 코드에 버그가 있었다면, 누가 그것을 처리했는지 확인하기 위해 그것을 사용하면, 당신은 그를 비난할 수 있습니다.Git but but disput (d)

한 할 에는 코드한줄알아할야경우이을력의,,git log -S"code here"그것은 빌어먹을 비난보다 더 간단합니다.

git 로그 vs git 비난

명령은 선을 마지막으로 수정한 수정본의 정보로 선에 주석을 달습니다. 그리고...Git 2.22(2019년 2분기)를 사용하면 성능 문제로 인해 더 빠르게 처리할 수 있습니다."git blame특히 선형 이력(우리가 최적화해야 하는 표준)에서.

David Kastrup()fedelibre의 commit f892014(2019년 4월 2일)를 참조하십시오.(Merged by Junio C Hamano -- gitster -- in commit 4d8c4da, 25 Apr 2019)

blame.c기원의 방울을 그렇게 열심히 떨어뜨리지 마세요.

상위 BLOB에 이미 비난을 위해 대기열에 있는 청크가 있는 경우, 한 번의 비난 단계 끝에 BLOB를 삭제하면 즉시 다시 로드되어 I/O 양이 두 배가 되고 선형 기록을 처리할 때 압축이 풀립니다.

이러한 상위 블롭을 메모리에 유지하는 것은 대부분 오래된 분기에서 병합을 처리할 때 추가 메모리 압력이 발생해야 하는 합리적인 최적화인 것 같습니다.


Git 2.41 (Q2 2023) 이전에는 "'"git blame --contents=<file> --(man)가 금지되었지만, 지금은 에서 시작하는 선의 기원을 찾습니다.<file>『 』 『 』 『 』 『 』 『 』로 내용<rev>.

제이콥 jacob-keller켈러()의 커밋 1a3119e(2023년 3월 24일)를 참조하십시오.
(주니오 C 하마노에 의해 합병 -- 62df03c, 2023년 4월 4일 커밋)

blame허용하는--contents HEAD

사인 오프 바이: 제이콥 켈러

--contents이 옵션을 사용하면 지정된 파일의 내용이 있는 것처럼 파일을 비난할 수 있습니다.
이는 내용을 작업 트리에 복사한 다음 gitback을 실행하는 것과 비슷합니다.
이 옵션은 1cfe773(git-blameno rev는 작업 트리 파일에서 시작하는 것을 의미합니다., 2007-01-30, Git v1.5.0-rc4 -- 병합)"git-blame하는 것을 file.no rev는 작업 트리에서 시작합니다.

--contents옵션은 항상 파일이 현재 HEAD 커밋을 기반으로 한 것처럼 파일을 탓합니다.
사용 중에 수정사항 통과를 시도하는 경우--contents다음 오류가 발생합니다.

fatal: cannot use --contents with final commit object name

이는 책임 프로세스가 항상 HEAD 개체를 유일한 부모로 사용하는 가짜 작업 트리 커밋을 생성하기 때문입니다.

fake_working_tree_commit항상 HEAD 개체를 사용하는 대신 부모에 사용할 개체 ID를 가져옵니다.
그러면 최종 목적이 있더라도 콘텐츠가 제공될 때 항상 가짜 커밋을 생성합니다.
을 삭제하여 할 수 없도록 .--contents그리고 최종 개정.

될 때 되지만, "" "" "" "" "" "" ""는 여전히 됩니다.--contents제공되지 않습니다.
이 경우 이러한 커밋을 생성하면 현재 체크아웃된 파일 내용이 제공된 개정판과 결합되어 일반적인 비난 동작이 해제되고 예상치 못한 결과가 발생합니다.

이기을사를 할 수 .--contents로컬 HEAD 커밋의 사용을 강제하는 대신 임의의 수정을 사용합니다.
이것은 다음을 만듭니다.--contents옵션은 --message를 사용하기 전에 원하는 커밋에 대해 더 이상 작업 트리를 체크아웃할 필요가 없기 때문에 훨씬 더 유연합니다.

blame-options이제 관리 페이지에 다음 항목이 포함됩니다.

이 달린 합니다.<rev>NO 때 <rev>지정되었습니다.
'를 지정할 수 있습니다.-파일 내용에 대한 표준 입력에서 명령을 읽습니다.

git blame이제 관리 페이지에 다음 항목이 포함됩니다.

[ --contents <file> ] [<rev> | --reverse <rev>..<rev>] [--] <file>

언급URL : https://stackoverflow.com/questions/31203001/what-does-git-blame-do

반응형