지정된 파일이 추가된 커밋을 찾는 방법은 무엇입니까?
파일이 있다고 말합니다.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
'sourcecode' 카테고리의 다른 글
Angular 2 + CLI 프로젝트에 폰트 어썸을 추가하는 방법 (0) | 2023.05.29 |
---|---|
두 일반 목록의 차이점을 비교하는 가장 빠른 방법 (0) | 2023.05.29 |
파일 잠금을 확인하는 방법은 무엇입니까? (0) | 2023.05.29 |
postgresql의 문자열 리터럴 및 이스케이프 문자 (0) | 2023.05.29 |
git 특정 커밋으로 되돌리기 (0) | 2023.05.29 |