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