防止git workdir中的临时文件

时间:2018-09-05 11:07:47

标签: git

我在同步文件夹(Google云端硬盘文件流,G :)中的某个文件夹上使用git。 .git是一个链接到普通磁盘(C :)位置的文件。

我注意到git正在创建临时文件:masterindexconfig

由于Google云端硬盘的性质,无法正确删除这些文件,从而生成烦人的副本。

...    
config (110)
config (111)
index
index (1)
index (2)
...
master
master (1)
...

这些不是.git文件夹中的文件,而是工作目录中的文件。

有没有办法告诉git不要使用workdir中的临时文件?

全部G:

相比之下,完全位于G:,gitdir和workdir中的git repo可以正常工作,而不会产生这些剩余物。

1 个答案:

答案 0 :(得分:2)

不,这没有办法。

  

我在同步文件夹(Google云端硬盘)中的某个文件夹上使用git ...

基本上,规则是:不要那样做。 Git在这些方面(Google云端硬盘,Dropbox,Virtualbox共享文件夹等)不能很好地发挥作用。 Git 必须在工作树中创建临时文件,因为它使用/取决于rename操作的原子性来控制状态。这些系统违反了本地文件系统重命名原子性规则,因此破坏了Git。

它有时会起作用,并且当它起作用时,可以忍受奇怪的事情。 (设置某些索引选项有时可能会有所帮助,例如core.trustctime=falsecore.ignoreStat=true。)但是不能使其100%可靠。