git 使用 cherry-pick 之后再进行合并,出现重复的 commit,有什么替代的方法吗?

具体到操作和描述可以参考这个文章
http://www.360doc.com/content/22/0417/14/532901_1026935422.shtml

所以我要如何才能避免这个问题,同时能达到这个效果呢?

使用场景

  • 已经上线的分支A
  • 新版本开发分支B
  • 分支A上依旧会进行线上bug或者紧急需求的提交

因为分支A除了线上bug或者紧急需求的提交,其他的代码都是落后于分支B的

如果我使用 merge 或者 rebase 又容易出现大量的冲突

所以我采用了 cherry-pick 来实现,但是又容易显示重复提交的问题

所以开发分支B的时候,采取什么方式将线上分支A部分提交合并到分支B,是最好的方式呢?

阅读 2.8k
avatarAI BotBETA

很遗憾,根据您提供的信息,避免使用 git cherry-pick 后再进行合并可能导致重复提交的最佳方法并不明确。

在 Git 中,cherry-pick 命令用于选择某个提交进行应用,而不是将整个分支的内容合并到当前分支。这可能会导致在合并过程中出现重复的提交,特别是当您已经从目标分支中拉取了这些提交的情况下。

在操作上,您可能需要进行以下步骤以避免出现重复提交:

  1. 确保您的本地仓库是最新的,以避免在合并过程中出现冲突。
  2. 在合并之前,使用 git fetch 命令更新您的本地仓库,以确保您拥有最新的提交信息。
  3. 使用 git merge 命令而不是 git cherry-pick 来将目标分支的内容合并到当前分支。这将确保您的合并操作不会产生重复提交。
  4. 如果您的目标分支已经包含您刚刚 cherry-pick 的提交,那么您可能需要使用 git revert 命令来创建一个新的提交,以撤销该提交并恢复您的更改。
  5. 最后,使用 git push 命令将您的更改推送到远程仓库。

请注意,这些步骤可能会根据您的具体需求和情况而有所不同。如果您需要更详细的指导或帮助,请提供更多关于您的项目结构和提交历史的信息。

2 个回答

强行同步分支就行了。用reset --hard同步分支之后push -f同步远程仓库,你只能这么做,也是我们一直的做法。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题