Git使用filter-branch' Permission denied'重写历史记录。

时间:2014-10-03 21:37:09

标签: git rewrite permission-denied denied git-rewrite-history

当我尝试使用命令修改我的回购时:

git filter-branch --force --tree-filter 'rm -rf `/Volumes/RamDisk/FF/large_files.txt | cut -d " " -f 2` ' --prune-empty master

我在控制台中获得输出:

Rewrite 072caf825338a50130903528862caa12cebd1c87 (1/3214)/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core/git-filter-branch: line 318: /Volumes/RamDisk/FF/large_files.txt: Permission denied
Rewrite 2e7c35b1dd73b2b2ceb010a3cd98ad6906b0716e (2/3214)/Applications/Xcode.app/Contents/Developer/usr/libexec/git-core/git-filter-branch: line 318: /Volumes/RamDisk/FF/large_files.txt: Permission denied...

large_files.txt只是一个文本文件,包含要删除的文件列表,我拥有它并拥有所有权限:

-rwxrwxrwx   1 luka  staff   6983  3 Oct 23:00 large_files.txt

我确定.git-rewrite不在repo(已删除)中且强制标志没有帮助?

这究竟是什么权限? 文件系统权限,Git远程权限还是其他? 这是我的回购,我完全访问它,尝试使用sudo,没有任何帮助。 BTW:large_files.txt只是一个文本文件,包含要删除的文件列表,

你能帮助我了解我在这里缺少的东西吗?

1 个答案:

答案 0 :(得分:1)

您正在尝试执行large_files.txt(请注意您的参数`中的--tree-filter字符内的内容a+x)。外壳可能令人困惑地说," Permission denied"当您尝试执行不可执行的文件时(即使您乐观地将其权限设置为cat)。你可能想在某处有一个xargs,不是吗?

顺便说一句,使用rm可能比在cut -d " " -f 2 /Volumes/RamDisk/FF/large_files.txt | xargs rm -rf 的参数中扩展它更安全。例如:

{{1}}