git remove files from very first commit
所以这个问题不是这样的:从git提交中删除文件,尽管它很相似。
我处于一种无法做到的境地:
因为我是第一个承诺。
我想知道如何从提交中删除文件,因为我无法回溯。
- 您可以提交它们,然后删除它。
- 可能与Git一起提交项目的第一次变更副本?
如果这是最新的提交,您可以很容易地修改它。只需进行所需的更改(例如删除文件),然后键入:
git commit --amend。
- 如果我想保留这些文件怎么办?
- 暂时将文件移动到另一个位置(例如桌面),它们将显示为已被Git删除,修改最后一次提交,就像文件从未存在过一样,然后将文件复制回原处,您就变成了黄金。
- 我试了一个reset --hard,然后是你的git commit --amend,取出大文件,但当我用力推它时,它仍然会推送价值500兆的东西。我还试了一个git diff-tree --no-commit-id --name-only -r,但没有显示任何东西。
- 听起来你把事情搞得太复杂了。这是第一次承诺。您甚至可以删除回购,创建一个新的回购,然后重新开始。如果您不能删除回购,可能会创建一个新的空白分支git checkout --orphan newbranch,重新启动,然后推该分支。然后可以删除旧分支。
- 是的,我可能把这件事搞得太复杂了。重新初始化git可能是最好的选择。
正如您从这里看到的,您可以做一个交互式的钢筋网。你必须为edit设定第一个承诺。在重新平衡期间,您可以删除带有git rm的文件,并添加新文件(带有git add)。完成后-git rebase --continue将有一个新的已编辑提交。如果您有一个远程分支,您可以通过强制推送本地分支来重写其历史记录。
- 嗯,我觉得我搞砸了,我以前用过。运行git reflog时的内容会影响提交大小吗?
- 我不确定您到底在问什么,但git reflog只是一个参考日志,它将帮助您恢复repo的状态,但不应影响任何提交大小。