Git重置—在一个命令中更改硬和樱桃-可能吗?

  • 本文关键字:樱桃 重置 命令 一个 Git git
  • 更新时间 :
  • 英文 :


设置场景:

我正在开发一个新功能,并且有一个基于分支a的分支X。我在X中有多个提交。我的同事做了一些需要强制推送到分支a的更改。现在我想处于这样一种状态:我的同事有分支a,我的分支X的提交在它上面。

如果我现在在同事新重写的分支A上使用git rebase,我就会因为他的历史重写而产生很多冲突。

要进入我想要的状态,我通常只需要将我的分支X复制到备份Y,将硬X重置为A,然后再次从Y选择提交到X。(如果我没弄错的话,我可以做同样的事情,而不是使用git rebase—onto)。

tldr:是否有可能用一个命令做到这一点,而不需要分支副本?我基本上想要的是
"将这个分支重置为远程,并在其上应用当前的最后X提交">

你没有错。假设您已经签出了分支X,并且使用了最新的git fetch,那么这个命令就是您所怀疑的(因为rebase会先进行重置):

git rebase --onto origin/A A

假设A表示在强制推入版本之前的A的本地副本,然后由origin/A表示。(如果不是这种情况,您可以替换commit- id。)

注意,无论你是选择还是重新设置,你都会有同样潜在的冲突;这是无法避免的。

最新更新