我在同步文件夹(Google云端硬盘文件流,G :)中的某个文件夹上使用git。
.git
是一个链接到普通磁盘(C :)位置的文件。
我注意到git正在创建临时文件:master
,index
和config
。
由于Google云端硬盘的性质,无法正确删除这些文件,从而生成烦人的副本。
...
config (110)
config (111)
index
index (1)
index (2)
...
master
master (1)
...
这些不是.git
文件夹中的文件,而是工作目录中的文件。
有没有办法告诉git不要使用workdir中的临时文件?
全部G:
相比之下,完全位于G:,gitdir和workdir中的git repo可以正常工作,而不会产生这些剩余物。
答案 0 :(得分:2)
不,这没有办法。
我在同步文件夹(Google云端硬盘)中的某个文件夹上使用git ...
基本上,规则是:不要那样做。 Git在这些方面(Google云端硬盘,Dropbox,Virtualbox共享文件夹等)不能很好地发挥作用。 Git 必须在工作树中创建临时文件,因为它使用/取决于rename
操作的原子性来控制状态。这些系统违反了本地文件系统重命名原子性规则,因此破坏了Git。
它有时会起作用,并且当它起作用时,可以忍受奇怪的事情。 (设置某些索引选项有时可能会有所帮助,例如core.trustctime=false
,core.ignoreStat=true
。)但是不能使其100%可靠。