我必须说我对Git来说有点新鲜,而且还有很多关于它的事情,我仍然不清楚。但是,目前最让我担忧的是在推出问题之前的拉动。
我正在开发一个项目,并希望将更改提交到远程服务器(而不是GitHub)。因此,假设我在本地对项目进行了一些更改,现在希望将更正后的文件发送到远程存储库,并在其中存储一些旧版本的项目。 Git希望我从远程服务器拉取(获取+合并)文件,但显然我不需要它们,因为拉它们只会破坏我在本地机器上所做的所有更改。
如何将更改推送到远程服务器,尽可能避免拉动以前的版本(在我的情况下是第一次提交)?如果不可能,那么这里最合理的解决方法是什么?
答案 0 :(得分:2)
您需要至少承认其他用户所做的更改。没有什么能阻止你以你的方式覆盖一切。您可以获取提交,然后按照您希望的方式合并它。
但我认为最适合你的方法是在不同的分支上工作。
答案 1 :(得分:1)
简而言之:您尝试做的事情将导致更多的伤害,痛苦和误解,而不是在这种情况下。虽然您肯定可以强制推送您的提交, 不要执行此操作 ,除非您 某些 您是这样做时没有踩到别人的脚趾。
Git不会主动破坏您的更改。事实上,如果它找到了单独无法处理的东西,它会提醒你(以合并冲突的形式)它无法解决的事情。
除此之外,关于你不需要远程更改的误解是不正确的。如果其他人推送到远程存储库,那么期望您编写的任何代码都不应与他们的代码冲突。
合并冲突并不是一件有趣的事情,但如果你发现自己经常遇到这些冲突,你可以采取一些措施来缓解冲突:
将您的工作基于您正在处理的任何主要开发分支的最新副本。如果可以的话,还要反对你的分支,以确保你不会落后于几个承诺。
一次触摸范围很窄的少量文件。如果您发现自己一次触摸了很多文件,请务必告知您正在执行此操作;有人可能有办法避免这种情况。
如果所有其他方法都失败,请与推送代码的其他开发人员联系,了解冲突是什么,原因是什么以及需要如何解决。在这里,沟通是关键;如果你不与其他开发人员交谈,那么如果你不理解为什么代码就是现在的情况,那么冲突就会非常痛苦。
答案 2 :(得分:0)
你想做的是
创建一个本地分支。
创建/结帐此新分支后,您可以从生产代码中独立
在您对新分支进行所需更新后,您只需按下远程分支即可。 (现在您的分支机构与您的更改保持同步)
将其投入生产
Git文档很棒。它胜过我的解释Git Documentation
答案 3 :(得分:0)
简而言之:是的,这是可能的。但是,我不确定你是否真的想避免拉扯。
拉什么基本上是将远程服务器与本地存储库同步。如果您在本地存储库中没有任何新提交(也就是更改),git将尝试应用并合并它们。如果没有新的提交,你可以简单地推送。
现在,如果有其他提交并且你真的不关心它们,你可以使用force with force选项。这将使用您的本地更改覆盖远程。但是,如果您不是唯一一个使用该存储库的人(甚至可能被禁止)并且您应该真正知道自己在做什么,这是一种不好的做法。强行推动会导致失败。