如何将git分支更新为与主分支相匹配?

9
这是我的问题。我有一个从主分支派生出来的分支,并进行了一些更改。稍后,我的合作伙伴撤消了他们所做的更改,因为它破坏了一些东西。当我运行 git fetch; git rebase master 时,主分支被修复了,一切都没问题。但是当我运行 git fetch; git rebase my_feature 时,my_feature 分支仍然存在与之前相同的问题。如何更新my_feature 分支,以考虑被撤销的提交?谢谢!

这个提交是通过 git revert 还是 git reset 撤销的? - alex
1
如果您不介意将所有其他新内容与还原一起带入,那么您可以将master合并到my_feature中。 - gcbenison
1
当你运行 git rebase mastergit rebase my_feature 时,你在哪个分支上? - dyng
3个回答

16

首先,您需要使用 git checkout master 然后使用 git pull origin master 命令来获取和合并您跟踪的远程主分支的主分支。这将使您的主分支达到与远程存储库相同的位置。

然后,您需要执行以下操作才能将您的特性分支重新基于新提交进行变基(git revert 只是另一个提交到分支上的提交,应该像任何其他提交一样处理(根据情况而有特殊注意事项)): git checkout my_feature 然后 git rebase master

这将在新的本地主分支上重新基于您的特性分支,该主分支应该正在跟踪远程主分支。


0
自从你在 master 上创建了分支 my_feature,你需要在 my_feature 分支上执行 git rebase origin/master

0

如果主分支之前有提交记录

(A) --> (B) --> (C) --> (D)

my_feature 分支是基于 (D) 的,现在已经回滚到了 (C),使得 (C) 成为了主分支上最新的提交。然后你可以通过运行以下命令将 my_feature 变基到 (C):

git branch my_feature.orig my_feature                          # optional, delete this branch when satisfied
git rebase --onto master $SHA1_OF_COMMIT_D my_feature.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接