Git push命令推送本地存储库或提交中不存在的已删除文件

时间:2017-01-28 16:38:31

标签: git version-control

我在github上托管了一个git项目,只有一个分支(master)和一个贡献者(我)。在我最初的提交之后,我将一些数据文件添加到我最终不需要的本地存储库中。我添加到文件并在一个点上提交它们,但在删除它们后做了其他提交。删除的文件不在远程或本地存储库中,当我执行git diff --stat --cached origin/master它们没有出现时,git cherry -v master仅显示我没有文件的当前提交。

然而,当我做git push origin master时,git尝试压缩并写入已删除的数据文件。我无法弄清楚为什么会发生这种情况以及如何从我的临时区域中删除文件。

我做了很多提交试图让删除的文件不被推送。最后,因为我有这么多提交,我将所有文件备份到一个单独的文件夹中,运行git reset --hard origin/master并用备份文件替换本地存储库中的所有文件然后执行git add *git commit -m "comment"

2 个答案:

答案 0 :(得分:1)

你应该运行git cherry对抗起源大师不应该吗?并且你不应该运行--cached,因为可能有一个先前的提交不在您的暂存区域,但不是在原始/主,删除文件。

答案 1 :(得分:0)

我需要

git rebase -i,感谢@choroba指出这一点。这些文件在我的本地历史记录中,即使它们不在本地存储库或提交中,所以我猜git仍然试图推送它们。

另外,感谢@jbu,他正确地指出我应该运行git cherry origin/master -v以查看等待推送的提交。