私がgit diff
を実行すると、存在しないファイルで私のdiffツールを起動しようとします。私はそれが変更された.gitignore
ファイルの最後のバージョンを取得していると仮定し、それを一時ファイルにコピーします。だから私はそれが起動を参照してください。git diffは存在しないファイルを比較しようとします
"C:\Program Files\Git\usr\bin\diff.exe" .gitignore C:/temp/D4Sgyb_.gitignore 55f1.... 100644 .gitignore 000.... 100644
しかし、差分ツールはC:/temp/D4Sgyb_.gitignore
が存在しないことを、当然のように、文句を言います。あまりに早く作成されていないか、削除されていませんか?
通常、 'git diff'は独自の内部diffを行いますが、他のプログラムを使用するよう指示している場合、この" external "diffを7つの引数で呼び出します:* path old-file old-hex old-mode new -file new-hex新しいモード*。これは外部差分の開始と思われる。 https://www.kernel.org/pub/software/scm/git/docs/git.html#_git_diffs – torek
を参照してください。ただし、外部ツールに渡す一時ファイルを作成できないようです。興味深いもの: – Marc
Gitは、外部プログラムが終了すると即座に一時ファイルを削除する、つまり終了し、プロセスはGitによって収集されることになる(そしてコードはこれを行うために書かれています)。私はWindowsをやっていないが、Unix/Linuxの「二重フォーク」に相当するものがあるだろうか?それとも、Windows Gitのバグで、一時ファイルを作成できなかったことに気付かずにいます。 :-) – torek