2011-11-24 106 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,通常是在新版本或類似版本之後,並且該行爲已被很好地記錄,所以它不應該別驚訝任何人。)

相關問題