2011-11-24 108 views
0

我在heroku上有一个应用程序,不幸的是我们的git存储库有一些文件不应该从头开始提交。git:在使用过滤分支来删除文件后无法推送更改

但现在其他人即将在项目中合作,这些文件总是会产生合并冲突,所以我需要删除它。我用这个命令成功地删除这些文件从所有提交历史:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r foldername' HEAD

但我不能把这些更改应用到服务器,我被迫前拉,因此通过失去了我的变化过滤分支。

如何将这些更改推送到服务器,以便我们不再存在冲突问题?

在此先感谢。

+1

你试过'git push --force'了吗?如果是这样,服务器禁止强制推送? –

+0

我...不知道那个:(它工作完美,我不能接受你的评论作为答案,但是非常感谢你! – MarceloJ

回答

1

运行git push --force不会强制你拉,也就是说它会跳过检查一个共同的祖先。服务器可以禁止该选项的使用,但至少有一个钩子。

关于重写推送历史的一般说明:如果您确定没有其他人克隆存储库,那么可以。否则,重写历史记录是一个很大的问题,因为这会给在自己的分支机构工作的人带来很大的麻烦。 (一个例外可以是develop/pu分支,例如官方的git仓库使用的。在他们的设置中,分支会定期重置为master,通常是在新版本或类似版本之后,并且该行为已被很好地记录,所以它不应该别惊讶任何人。)

相关问题