问题标签 [cherry-pick]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
161 浏览

git - 哪个提交是精心挑选的?

你如何找出樱桃挑选操作中使用了哪个提交?git reflog 似乎只在cherry-pick 合并并提交后才显示生成的提交 Sha-1。我们需要在此之前找到原始提交。

为什么?这是因为我们错误地挑选了一个大的但不正确的提交到不同的分支。但是直到修改它以便它编译并在它之后添加其他提交之后才意识到它。

这里的目标是比较原始的樱桃选择,并将这些差异用作补丁或手动对正确的樱桃选择进行相同的更改。

0 投票
1 回答
119 浏览

git - 樱桃挑选合并在这个方案中是否合适?

想象一个 git 存储库,其结构如下:

  • 主分支- 下一个主要版本的开发在这里完成
  • 发布分支——发布补丁的开发在这里完成
  • 修补程序分支- 修补程序分支从发布分支分支出来,以修复补丁的发布错误。

所以修补程序是在 Release 分支上开发的,为了将修补程序带入我的 Main 分支,我以前的模式是使用cherry pick 合并。现在我在质疑这是否合适。

在这里使用常规合并将 Hotfix 分支合并到 Main 分支是否更合适?在这两种情况下是否有任何“陷阱”?

0 投票
1 回答
8438 浏览

git - 在 Git 挑选或变基合并冲突中,BASE(又名“祖先”)、LOCAL 和 REMOTE 是如何确定的?

在正常的 Git 合并冲突中,三路合并的文件的三个版本大致如下:

  • 本地:我的分支的版本
  • REMOTE:来自另一个分支的版本
  • BASE:来自两个分支的共同祖先的版本(特别是我分支的 HEAD 和另一个分支的 HEAD 的共同祖先)

当一个 Git cherry-pick 产生合并冲突时,没有共同的祖先,正确地说,那么这些东西是如何确定的呢?关于变基也可以问同样的问题。

0 投票
2 回答
160 浏览

git - 有没有办法将 git 提交从我的树的一部分应用到另一部分?

在昏暗而遥远的过去,我们决定破坏与我们的配置程序之一的兼容性。然而,由于仍有远程单元运行旧软件,我们需要在构建中保留旧 mgmt 软件的版本。一个简短的“cp -a”之后,我们最终得到了一个目录结构,其中包含:

开发继续进行,mgmt-app 积累了许多修复,一些是新功能和一些通用功能。正如您可能猜到的那样,现在注意到 mgmt-app.old 没有这些修复程序中的一些。如果我能挑选相关的修复程序并保留有用的东西(如评论)但将提交应用到 mgmt-app.old,那就太好了。显然它们不能正常应用,因为它们已经在应用到 mgmt-app 的树中!

我们正在使用 git 对存储库进行版本控制。有没有办法可以将这些提交“反向移植”到树的不同部分?这只是通过使用“patch -p”手动应用补丁来解决吗?

0 投票
1 回答
2358 浏览

version-control - “向后移植”的工作流程更改为不同的 Mercurial (Hg) 分支?

我们有两个头。一个是我们的主要开发负责人,另一个是我直到今天才忘记的那个。我们发现了一个错误并在我们的主要开发分支中修复了它,我刚刚意识到它也应该在旧分支中修复。

我认为在旧分支上进行更改并将其与最新分支合并会更好,但我们没有这样做。水银能处理这个吗?我们还没有尝试过这样的事情,我也无法真正理解它是如何完成的。

0 投票
1 回答
3935 浏览

git - Git 通过cherry-pick 与提交合并

以下场景:我有多个分支(主/预览/发布)。我正在开发大师,定期提交。让我们称它们为“实验性”和“修复”。

现在我想在没有实验提交的情况下将选定的修复提交合并到我的预览分支。

图像应该显示我的意思。

git-repository 的架构

现在我试过了cherry-pickrebase但我不知道如何管理它。

0 投票
1 回答
132 浏览

xcode - git 合并后(在 Xcode 上)两个分支有什么关系?

假设我有一个分支 A。然后我创建分支 B,进行大量更改并提交。然后我将 B 合并到 A 中,但选择为某些文件的某些部分保留 A 版本。(我正在使用 Xcode 来执行这些操作,但不确定 git 命令行等效项)

此时A和B之间是什么关系,git知道我没有合并B中的一些变化吗?稍后,我能否以某种方式将我在第一次将 B 合并到 A 时选择忽略的更改合并?

(我认为我想要的是类似于 git cherry-pick 的东西,但是“樱桃采摘”是一个被误导的大提交的一部分)

0 投票
1 回答
828 浏览

git - git cherry-pick 导致分支在 origin/master 之前

我正在尝试将来自分支的特定提交合并到 master 中,并将它们推送到原点。

这是我正在做的事情:

我哪里错了?

0 投票
1 回答
519 浏览

branch - `git svn dcommit` 在分支上失败

我一直在使用git-svn与我公司的 svn repo 通信一段时间,没有任何大的头痛。

今天,“头痛”部分发生了巨大的变化:
我一直在master/trunk非常专注地工作,并且需要将大部分(但不是全部!)这些变更集合并到一个新的 svn 分支中,该分支源自一个预先存在的svn 分支。

基本上是这样的:

应该变成这样:

不应该在 中的提交在哪里new-versioned-release,以及x来自各个分支的想要的提交x

所以我做了以下事情:

  1. git checkout -b versioned-release-svn remotes/versioned-release
  2. git svn branch new-versioned-release -m "Preparing for merge of XXX"
  3. git checkout -b new-versioned-release-svn remotes/new-versioned-release
  4. git cherry-pick ...对于每一个1,解决途中的任何冲突。

因为我想确定我真的要针对 repo 上的正确分支,然后我运行git svn dcommit --dry-run它并没有产生任何错误或警告,但告诉我......</p>

…接着是几diff-tree行。

所以我试图省略--dry-run提交的中途以......</p>

……还有一堆未分阶段的变化。

除了显而易见的——“WTF?!?” 和“我怎样才能在不失去我所做的一切的情况下摆脱这个烂摊子?” ——我有两个问题:

  1. 假设我回到以前git svn dcommit:我如何让我的本地分支 dcommit 到其计划的目的地?
  2. 现在看来很明显,这不是实现我想要的正确方法……但是应该怎么做呢?

我为错误消息找到的所有内容,在某种程度上类似于我的情况,到目前为止,这是另一个堆栈溢出问题,并且提出的“以某种方式 [...] 吹走.git/svn元数据目录”的解决方案并没有引起的共鸣...... </p>

0 投票
1 回答
404 浏览

eclipse - Hg + Eclipse - 过滤变更集以进行移植

我一遍又一遍地重复的动作是将我的更改从生产分支移植default到生产分支。然而,每次这意味着手动挑选我想要在大量其他变更集之间移植的变更集的繁琐且容易出错的任务。

移植向导

有没有办法按作者和消息过滤可用的 chagnesets?