foo.js
少し前にコミットされたファイルがあるとします。このファイルが最初に追加されたコミットを見つけたいだけです。
答えと自分のいじりを読んだ後、これは私のために働きます
git log --follow --diff-filter=A --find-renames=40% foo.js
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
以下の1つのライナーは、ファイルへの絶対パスまたは相対パスを指定する必要なしに$PWD
forのサブディレクトリを再帰的に検索し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