2014-01-27 62 views
0

我們正在研究Git,但之前沒有中央存儲庫。我們已經提前(3個月),現在我們的客戶已經創建了一個存儲庫,但是它的3個月的代碼。我嘗試在我的機器上創建本地場景,然後嘗試存儲。創建一個svn倉庫(S),將其移動到git倉庫(G)。現在另一個git文件夾(G2)已經具有不同內容的相同文件。當我試圖把G2推到G時,它說你不能將它推到遠程,因爲它包含你本地沒有的工作。我們不能拉,因爲現在工作太多了。而且我們在歷史上也有很多。我也嘗試過推力。也沒有工作。遷移到Git,但本地Git回購已經有變化(推送失敗)

+0

我在這裏找到了答案,它爲我工作。 http://eatmyrandom.blogspot.com/2009/07/how-to-merge-two-independent-git.html – Waqas

回答

1

力推默認情況下禁用(因爲它可能是危險的),你可以問你的客戶來啓用它一點點時間 他在CLI寫

$ git config --system receive.denyNonFastForwards false 
+0

使用'--system'不太可能奏效。通常單個存儲庫的'receive.denyNonFastForwards'被禁用;個人回購的配置具有比系統配置文件更高的優先級。相反,運行相同的命令,而不要在存儲庫中使用'--system'。 –

+0

謝謝我已經能夠推動我的改變,但不幸的是它已經覆蓋了以前的歷史與G2的歷史,我看不到12月開始的工作以外的任何東西。 – Waqas

+0

這就是我告訴'它可能是危險'的意思,認爲你明白這一點(力量意味着凌駕) –

1

這是配置的問題。正如評論中所述,遠程存儲庫中的設置receive.denyNonFastForwards確定git push --force是否有效。如果該設置處於活動狀態,您仍然可以嘗試刪除然後重新創建遠程分支(例如git push --delete origin master; git push origin master) - 刪除分支由不同的設置控制。當然,這樣做違反了denyNonFastForwards的精神,你應該在做這樣的事情之前回頭查看版本庫的擁有者。