2014-01-27 63 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的精神,你应该在做这样的事情之前回头查看版本库的拥有者。