sourcecode

지정된 파일이 추가된 커밋을 찾는 방법은 무엇입니까?

copyscript 2023. 5. 29. 11:07
반응형

지정된 파일이 추가된 커밋을 찾는 방법은 무엇입니까?

파일이 있다고 말합니다.foo.js그것은 얼마 전에 저질러진 것입니다.이 파일이 처음 추가된 위치의 커밋을 간단히 찾고 싶습니다.

답과 나만의 수정을 읽은 후에, 이것은 나에게 효과가 있습니다.

git log --follow --diff-filter=A --find-renames=40% foo.js

파이프라인이 필요 없는 보다 단순한 "순수한 Git" 방법은 다음과 같습니다.

git log --diff-filter=A -- foo.js

설명서를 확인하십시오.삭제, 수정 등에 대해서도 동일한 작업을 수행할 수 있습니다.

https://git-scm.com/docs/git-log#Documentation/git-log.txt---diff-filterACDMRTUXB82308203

나는 항상 잊어버리기 때문에 이것에 대한 유용한 별칭을 가지고 있습니다.

git config --global alias.whatadded 'log --diff-filter=A'

이를 통해 다음과 같이 단순해집니다.

git whatadded -- foo.js

아래 하나의 라이너는 하위 디렉터리를 통해 재귀적으로 검색합니다.$PWD위해서foo.js파일에 절대 경로 또는 상대 경로를 제공할 필요 없이 파일이 동일한 디렉토리에 있을 필요도 없습니다.$PWD

git log --diff-filter=A -- **foo.js
git log --follow --find-renames=40% --oneline -- foo.js | tail -n 1

다음은 당신의 관심사가 아닐 수도 있지만, 앞으로 당신에게 도움이 될 것이며 Git의 디버깅 생태계의 일부라고 생각합니다.

사용할 수 있습니다.git-blame파일의 각 줄, 특히 파일 주석을 마지막으로 수정한 수정본 및 작성자를 표시합니다.https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git 를 방문하세요.

예를들면,

git blame -L 174,190  xx.py

-L 옵션은 주석의 출력을 174 ~ 190행으로 제한하는 것입니다. 따라서 xx.py 파일에 대해 174 ~ 190행의 작성자와 커밋 해시 등을 볼 수 있습니다.

만약 그것을 비프로그램적으로 하는 것이 대안이라면, 이것은 매우 빠릅니다.gitk GUI를 엽니다.

gitk file

그런 다음 첫 번째 커밋으로 스크롤합니다.

언급URL : https://stackoverflow.com/questions/11533199/how-to-find-the-commit-in-which-a-given-file-was-added

반응형