我在heroku上有一个应用程序,不幸的是我们的git存储库中有一些文件不应该从头开始提交。
但现在其他人即将在项目中进行协作,这些文件总是会产生合并冲突,所以我需要删除它。我已使用此命令从所有提交历史记录中成功删除这些文件:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r foldername' HEAD
但我无法将这些更改推送到服务器,我之前被迫提取,因此通过filter-branch丢失了我的更改。
如何将这些更改推送到服务器,以便我们不再存在冲突问题?
提前致谢。
答案 0 :(得分:1)
运行git push --force
不会强迫你拉,也就是说它会跳过对共同祖先的检查。但是,服务器可以禁止使用该选项,至少使用钩子。
关于重写的说明一般推动历史:如果你确定没有其他人克隆存储库,那也没关系。否则重写历史是一个很大的禁忌,因为它会给那些在自己的分支机构工作的人带来很多麻烦。 (例外情况可能是开发/ pu分支,例如官方git存储库使用。在他们的设置中,分支将定期重置为master,通常在新版本或类似版本之后,并且该操作已被充分记录,因此它不应该不要让任何人感到惊讶。)