답변:
파이프 라인이 필요없는 더 간단한 "순수한 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 --diff-filter=A -- foo.js
인쇄하지 않았습니다. 내 터미널에서 STDOUT에 ID / 해시를 커밋하기보다는 원하는 결과를 얻기 위해 git repo 루트에서 파일의 상대 경로를 제공해야했습니다.
git log --oneline -- foo.js | tail -n 1
--follow
입니다.
다음은 관심이 없을 수도 있지만 앞으로 도움이 될 것이며 Git의 생태계 디버깅의 일부입니다.
git-blame
파일의 각 줄, 특히 파일 주석을 마지막으로 수정 한 개정 및 작성자를 표시하는 데 사용할 수 있습니다 . https://git-scm.com/book/en/v2/Git-Tools-Debugging-with-Git 방문
예를 들어
git blame -L 174,190 xx.py
git log --diff-filter=A -- *subfolder/foo.js