Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.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的文件。现在是';这是回购协议,而不是本地协议。如何取消回购?_Git_Github - Fatal编程技术网

删除了没有git的文件。现在是';这是回购协议,而不是本地协议。如何取消回购?

删除了没有git的文件。现在是';这是回购协议,而不是本地协议。如何取消回购?,git,github,Git,Github,我在bitbucket上使用我的回购协议已经有一段时间了,我在本地使用了一些文件。我已经删除了一些文件(刚从linux中使用rm),使用-am“message”提交,并推送到master 现在我转到我的回购协议,我看到了一些存在于回购协议上但不在本地的文件 我如何告诉我的git存储库删除本地不存在的任何文件?文件将永远保留在早期版本中,但不应在最后一个版本中。您只能重新创建存储库 已提交-am“消息” 即使您尚未执行git rm,提交-a也足以拾取这些已删除的文件: : 告诉命令自动暂存已修改和

我在bitbucket上使用我的回购协议已经有一段时间了,我在本地使用了一些文件。我已经删除了一些文件(刚从linux中使用rm),使用-am“message”提交,并推送到master

现在我转到我的回购协议,我看到了一些存在于回购协议上但不在本地的文件


我如何告诉我的git存储库删除本地不存在的任何文件?

文件将永远保留在早期版本中,但不应在最后一个版本中。您只能重新创建存储库

已提交-am“消息”

即使您尚未执行git rm,提交-a也足以拾取这些已删除的文件:

:

告诉命令自动暂存已修改和删除的文件,但未告知Git的新文件不受影响


这意味着,
git push
已经推送了这些删除。请尝试在其他位置再次克隆您的回购,以查看这些文件在头部不再可见。

如果您使用
rm
删除了这些文件,它们应显示在
git status
下的
未提交的更改:
已删除。如果这是正确的,您可以执行
git-rm
git-add
,然后提交。别担心,在你的情况下,两者的效果是一样的。这将从工作目录的索引中删除文件

当你
rm
一个文件时,git知道它从你当前的工作目录中丢失了,但它不会停止跟踪该文件。您必须将此更改添加到缓存(或临时区域),然后提交更改
git-rm
rm
文件以及
git-add
文件具有相同的效果。如果该文件存在于工作目录中,
git rm
也会将其删除,否则不会失败

请注意,这不会从存储库中删除文件,因此,如果文件是敏感的(例如私钥或密码),则应按照说明从所有对象中删除该文件

现在我转到我的回购协议,我看到了一些存在于回购协议上但不在本地的文件

这些文件存储在您的git存储库中,但它们不是您最近的代码(workdir)的一部分

如果您想从git(历史记录)中完全删除它们,您必须清理存储库并删除它们

要执行此操作,您可以使用
过滤器分支
或使用


如何让我的git存储库删除本地不存在的任何文件

一旦git跟踪了您希望删除的文件,您必须首先将它们从缓存(索引)中删除

要删除哪些文件?您需要有一个要删除的文件列表。这可以手动完成,如果您知道您的文件,也可以使用脚本生成它们


如何获取要删除的文件列表? 几乎没有办法。(
格式补丁
日志
等)

下面是一个关于如何查看提交的文件的示例(git>2.5)


通常,您会在本地删除文件,然后推送到远程存储库,而不是反过来。为什么要从远程删除这些文件,并且确定它们不重要?是的,它们不重要。我只是忘记了在本地删除它们时使用git rm。如果您忘记在本地删除它们,那么它们应该显示在本地和远程。我是不是遗漏了什么?是的。我忘了在本地删除它们时特别使用“git rm”。我使用“rm”在本地删除它们,这显然对存储库没有影响。当您执行
git push时,它们也应该从远程分支的头部删除。只需
git rm
你忘记的文件,推送,然后处理完。我甚至不确定我是否理解它。它永远在那里,但不是在最后的修订版中?编辑:哦,好的,我明白了。谢谢你的答案是错的。您还可以将其与历史记录进行远程连接。
git rm --cached
git log --cc --stat