我有一个奇怪的错误,我正在使用的众多开发工具之一git reset HEAD
在我的项目中发出了 a ,导致我失去了所有工作。我可以通过检查 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
现在,如果一个eg运行dd if=/dev/random of=/home/user/.git/test bs=1M count=10
,你就会看到是谁干的。