Git参考目录<repo> /。git / refs

时间:2018-09-09 07:28:09

标签: git refs

在Windows上,Git的引用问题仅在以下情况下有所不同:

$ git branch foo
$ git branch FOO
fatal: A branch named 'FOO' already exists.

$ git branch dir/foo
$ git branch DIR/bar
$ git branch --list
* develop
  foo
  dir/bar
  dir/foo

Git可以使用文件系统将引用存储为文件foobar到目录<repository>/.git/refs/heads/dir中来解释。

$ git branch --delete dir/bar
$ git branch --delete dir/foo
$ git branch --list
* develop
  foo

旧版Git似乎在<repository>/.git/refs中留下了一些空目录,新版Git删除了这些目录。

手动删除<repository>/.git/refs中的空目录是否安全?

1 个答案:

答案 0 :(得分:2)

  

手动删除<repository>/.git/refs中的空目录是否安全?

是的, 如果 ,没有其他运行。如果需要,Git将重新创建它们。

(如果正在运行Git命令,它可能会确定该目录存在并且不需要创建,然后您删除该目录,然后Git命令尝试使用您刚刚删除的目录中的文件。 )

请注意,如果您运行git pack-refs --all,则现有的引用将合并到包含打包引用的单个文件中。这将允许您创建仅大小写不同的新引用,但不要这样做,因为当Git转到 update 引用时,它将绊倒文件系统中的大小写折叠问题

(解决方法是让Git停止使用文件系统中的文件保存参考值。我相信有一天会发生这种情况,我只是不知道何时。)