我不是在问为什么我不能推销回购。我问的是将新的本地项目推送到具有大量不同代码的现有仓库以及现有项目中的大量代码的正确方法是什么。意思是我无法拉动项目,因为它会添加所有旧代码。
我有一个git项目。
项目A。
我对它进行了一些重大更改,因此我在localhost上创建了一个新项目,并复制了一些代码以对其进行更改。现在我已经重构了我的项目,我想推动这个项目
项目B。
成为项目A的最新提交。这样我就可以维护项目的历史。而不是删除旧项目。
问题
如何将项目B推送到项目A的最新提交。
我尝试过什么
我在项目B中打开了.git/config
并将URL更改为项目A.
然后尝试将项目推送到现有的仓库,我得到了这个,
错误:无法将某些引用推送到 'https://example.com/example/web-application.git'提示:更新了 被拒绝,因为遥控器包含您提示的工作:没有 本地。这通常是由另一个存储库推送提示引起的:to 相同的参考。您可能希望首先集成远程更改提示: (例如,'git pull ...')再次推动之前。提示:请参阅'注意事项 快进'''git push --help'了解详情。
但是,如果我拉入该回购,我将添加我试图删除的所有代码。
答案 0 :(得分:0)
你做事的方式让你的存储库变成了一个奇怪的状态。如果您真的想保留所有历史记录,最好保留所有代码并从本地仓库中删除它,然后推送这些更改。听起来你已经尝试过快捷,但现在你遇到了同步问题。为了有点生硬,我很惊讶git正在处理这个问题。
最优雅的解决方案是遵循提示建议,执行git pull,解决冲突,然后推送。听起来这将是很多工作,但这是最好的做法。
如果有一群独立的人在这个存储库上工作,你可以轻松地与之沟通,并且你确定你所推动的是你想要的,那么你可以做git push -f origin master
。