git reset HEAD
私が使用している多くの開発ツールの1つがプロジェクトにバグを発生させ、すべての作業を失うようにする奇妙なバグがあります。 git reflogをチェックすると、これを確認できます。
どのツールが犯人であるかを調べるために、削除プロセスを試しましたが、非常に時間がかかります。
.git
どのプロセスがディレクトリと対話するかを確認するために、ディレクトリへのすべての書き込みをブロックする方法があるかどうか疑問に思います。大丈夫ですか?
答え1
inotifyツールを使用してこのディレクトリを監視できます。次にlsof
結果を確認してください。今問題はどのイベントが欲しいのかです。それに応じて調整し、man inotifywait
より多くのイベントオプションを確認してください。私はファイルに書き込むことに決め、次のようにしました。
inotifywait -m -r -e modify -e create --format %w%f ~/.git |
while read file ; do
lsof ${file} 2>/dev/null
done
たとえば、実行すると、dd if=/dev/random of=/home/user/.git/test bs=1M count=10
誰がそうしたのかがわかります。