如何在我的本地存储库之前修复Git上的远程分支而不需要拉



我正在与许多使用git的人一起进行一个项目。我远离团队,我们的工作方式是这样的:

1( 他们从"develop"中创建分支,然后在测试后将它们合并到"development"中,并将其推送到原始repo。这种情况经常发生。

2( 我经常在原点之外创建自己的开发分支:一个名为"my_develop"的分支。然后我创建分支,测试它们并将它们合并到"my_develop"中。

3( 当他们更新"development"时,我经常将"development"合并到我的分支中(即,合并到my_develop中(。这样可以最大限度地减少分歧,而无需将我的工作融入日常开发中。

4( 大约每个月一次,我将"my_develope"推送到原点,发出一个pull请求,它被合并到develop中,然后我从一个新的"my_deevelope2"开始,等等。

问题来了。简言之,有一次,代码在开发过程中出现了一些严重的问题,但在很短的一段时间内没有被发现。然而,我已经将这个糟糕的"develop"分支合并为"my_develop",并将其推到了原点。它成为了一个功能问题,冻结了我的进度,所以我一度在本地存储库上对"my_develop"上的提交进行了"git重置",比原始文件提前三次提交。

现在的问题是,我无法将"my_develop"推到原点。它反对的理由是,关于origin的"提示"比我在本地的提交提前了几次,并要求我在分支"my_develop"上拉一拉,以集成来自origin的更改。

当然,重点是,从那时起,我一直在做增量开发,从原始版本返回了一些提交。在这一点上,origin上的"my_develop"的HEAD已经过时,pull将撤消我在本地"live"分支上所做的所有更改。

我看到人们提出了3个建议如何解决这个问题:

1( 执行"git push origin my_develop--force"。从逻辑上讲,这就是我想做的,但有很多关于这样做的危险性的警告。

2( 有些建议说要用rebase来处理这个问题,尽管我不太明白该怎么做。

3( 选项#3包括使用"ours"作为合并的手段,但给出git指导,以决定在合并冲突中哪行代码"获胜"。

关于最好的方法有什么建议吗?

注意:如果有帮助的话,我是唯一一个在"my_develop"上工作的人。

注意:自从我第一次发帖以来:我想我可以简单地进入我的分支("it checkout my_branch"(,然后在那里创建一个新分支("git checkout-b my_latest_branch’(,然后简单地从那个分支开始工作,然后将其推送到原始分支并发出拉取请求。这会让"我的牧场"的小费变成孤儿,但我在乎吗?

因为你只是my_develop上的一个

注意:如果有帮助的话,我是唯一一个在"my_develop"上工作的人。

我建议使用带强制选项的git-push

  1. 如果你是my_develop上的唯一一个,你可以使用像git push origin my_develop --force'这样的力选项进行推送。这对你的团队没有影响。

  2. rebase是将代码从主分支更新到特性分支(my_develop(的一种很好的做法。但是您的分支以前决不能合并任何内容。

  3. 如果develop上的代码不稳定,请不要合并到您的功能分支中。

ps。您可以在合并之前的最后一次提交时创建一个新的分支,然后从development开始工作。

相关内容

最新更新