从过去的几天开始,我一直在我的本地添加和提交文件。我的分支现在是16个提交,来自&origin; master'。
我想将它们推送到我的git repo但是其中一个文件非常大我的推送命令失败了。有没有办法从存储中删除该提交,或者我必须在头上进行硬重置。
答案 0 :(得分:2)
如果您只想跳过提交,请执行git rebase -i master
并选择drop
以便跳过提交。如果您只想从中删除单个文件,请选择edit
并修改提交以删除该文件。
答案 1 :(得分:2)
squash
# edit all the commits up to the given sha-1
git rebase -i <sha-1>
但是其中一个文件非常大我的推送命令失败了......
How to remove big files from the repository
强> 您可以使用git filter-branch
或BFG。
https://rtyley.github.io/bfg-repo-cleaner/
<强>
BFG Repo-Cleaner
强>git-filter-branch的替代品。
BFG是git-filter-branch的一种更简单,更快速的替代方法,用于清除Git存储库历史记录中的错误数据:
*删除疯狂的大文件*
*删除密码,凭证和&amp;其他私人数据
在所有这些示例中,bfg是java -jar bfg.jar的别名。
# Delete all files named 'id_rsa' or 'id_dsa' :
bfg --delete-files id_{dsa,rsa} my-repo.git
答案 2 :(得分:0)
如果您只想删除文件,那么为什么不通过删除文件然后提交更改来实现?
现在,在您最近的提交中,文件不存在。
您现在应该能够毫无问题地将分支推送到遥控器。
答案 3 :(得分:-1)
你可以做的是你可以使用git rebase选项并压缩所有提交。