Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git filter branch说;“没有此类文件”;但是ls说的不是这样吗?_Git_Bash_Ubuntu 12.04 - Fatal编程技术网

Git filter branch说;“没有此类文件”;但是ls说的不是这样吗?

Git filter branch说;“没有此类文件”;但是ls说的不是这样吗?,git,bash,ubuntu-12.04,Git,Bash,Ubuntu 12.04,我意外提交了一个文件,local.py,其中包含密码信息 我尝试使用筛选器分支删除该文件,但我被告知该文件不存在ls则相反。我相信这很简单,但有人能解释一下原因吗 下面是确认文件存在的ls (spsp)user99@jaffa:~/dev/antibes$ ls -l ferrat_project/ferrat_project/settings/local.py -rw-rw-r-- 1 user99 user99 458 Sep 5 10:44 ferrat_project/ferrat_p

我意外提交了一个文件,
local.py
,其中包含密码信息

我尝试使用筛选器分支删除该文件,但我被告知该文件不存在
ls
则相反。我相信这很简单,但有人能解释一下原因吗

下面是确认文件存在的
ls

(spsp)user99@jaffa:~/dev/antibes$ ls -l ferrat_project/ferrat_project/settings/local.py
-rw-rw-r-- 1 user99 user99 458 Sep  5 10:44 ferrat_project/ferrat_project/settings/local.py
这里是git filter分支的
git filter分支
失败,因为它找不到文件

(spsp)user99@jaffa:~/dev/antibes$ git filter-branch --tree-filter 'git rm ferrat_project/ferrat_project/settings/local.py' HEAD
Rewrite 123454323asdj157f2cf6a83e6f2777e85da5b0b (1/52)rm: cannot remove ‘ferrat_project/ferrat_project/settings/local.py’: No such file or directory
tree filter failed: git rm ferrat_project/ferrat_project/settings/local.py

编辑1:回答评论中提出的一些问题。


该文件是否存在于该错误消息中的修订处

引用的修订是对存储库的第一次提交。该文件当时不存在

你什么时候添加这个文件的

在第三次提交到存储库时(意外地)添加了该文件。存储库中有52个提交


编辑2:我尝试了一些回应评论的内容。 我重新阅读了filter branch手册页,随后尝试了以下操作:

user99@jaffa:~/dev/antibes$ git filter-branch --tree-filter 'rm -f ferrat/ferrat/settings/local.py' HEAD
Rewrite 002198729d953ee70a63f2ed68011b3ffb165043 (52/52)
Ref 'refs/heads/master' was rewritten
这至少起到了作用,但实际上删除了我试图隐藏的文件。我并不太担心这一点,因为我在开始备份之前已经进行了备份,所以我对.gitignore进行了编辑,以阻止local.py重新出现,然后从备份中复制local.py,然后。。。据我所知。。。现在一切都好了


我很确定我应该使用“git rm”而不是“rm”,也许我还做了其他一些错误的事情,但这至少似乎起到了作用。

该文件是否存在于该错误消息中的修订版本中?大概不会。git filter branch手册页在其一个示例中讨论了这一点。话虽如此。你什么时候添加这个文件的?刚才?谢谢你的回复。我将对该问题进行编辑以回答您的问题。只是跟进您的评论,我再次阅读了filter branch手册页,我似乎已经解决了这个问题(尽管)我不是100%确定。即将编辑包含更多详细信息的问题。