问题标签 [git-cherry]

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 投票
3 回答
702 浏览

git - git cherry: How to identify equivalent commit by commit message

In my project there are a stable branch and a dev branch. Commits are cherry-picked from dev branch to stable branch.

In order to filter all commits on dev that have not been merged to stable, git cherry -v stable dev looks like a good choice. However it identifies equivalence by diff, which usually changes after resolving merge conflict during cherry-pick:

The equivalence test is based on the diff, after removing whitespace and line numbers. git-cherry therefore detects when commits have been "copied" by means of git-cherry-pick(1), git-am(1) or git-rebase(1).

I was wondering that is there any command that works like git cherry, but identifies equivalent commits by commit message?

0 投票
1 回答
82 浏览

git - Git - 如何在使用“git cherry”时过滤提交

我想知道是否有一种方法可以过滤我们使用时仅应用的提交,

换句话说,让我们假设上面的命令产生下面的输出,

但我有兴趣只看到如下输出,

开始于+ sign.

0 投票
1 回答
447 浏览

git - git:git cherry-pick 后 git cherry 的输出没有改变

我在 git 中有两个遥控器,分别是“ origin ”和“ upstream ”。origin 在某个时候被分叉到上游,并且自分叉以来都有几次提交。现在我想将“上游”上发生的许多(但不是全部)提交带到“起源”。所以我的操作顺序如下:-

1-从远程存储库中获取所有更改并更新本地主服务器(我在主分支上):-

2-列出本地主机和上游主机之间的提交差异:-

在看到之后,我看到有很多带有 (+) 符号的提交:-

3-我有兴趣挑选第四次提交,所以我继续执行以下命令(确保我首先在分支 master 上):-

4-此时,我再次执行步骤 2 中列出的 git cherry:-

我预计输出会有所不同,因为第四次提交将具有 (-)。但是,此命令之后的输出仍然相同:-

我已经仔细检查了我的登录主人,我可以看到第四次提交已被添加。为了查看 git cherry 输出的变化,我还需要做些什么吗?为了正确获得origin/masterupstream/master之间的区别,我需要做什么?

我在 Windows 版本 2.11.0.windows.1 上使用 git。

0 投票
0 回答
173 浏览

git - git cherry master 上游与上游大师

git cherry master upstream对于 和 之间的逻辑区别,我有点困惑git cherry upstream master。我知道它以前可能是更正确的应用,但我不完全明白为什么列表要长得多。

假设我有两个分支masterfeature. 现在假设我有提交,feature但我也有一些master我想要的提交,feature反之亦然,但不能(或不会)合并这两个分支。解决这种特殊的管理噩梦的方法是交叉挑选我需要的提交。

结果,为什么会git cherry feature master产生git cherry master feature不同的结果,有没有办法获得这些分支之间差异的完整可靠列表?

0 投票
1 回答
728 浏览

git - 如何列出包含精心挑选的提交的 git 标签

我试图找出如何列出包含给定提交的所有标签,包括那些被精心挑选的标签。

例如:

  • 我有一个 commit abcd1234,它已合并到master分支中。
  • 这给了我一个带有哈希的合并提交a1b2c3d4
  • 我此时创建了一个名为release-1.0的标签

此时,我可以使用git tag --contains abcd1234OR git tag --contains a1b2c3d4。这两个命令都会列出标签release-1.0

现在:

  • 我从release-1.0标签创建了一个热修复分支
  • 我在带有哈希的主服务器上有一个新的合并提交xyz789
  • 我将这个提交挑选到热修复分支上
  • 我将此热修复分支标记为release-1.1并删除该分支

如何获取包含 commit 的所有标签的列表xyz789?在这种情况下,它应该显示此提交可用于:

  • 发布-1.1
0 投票
1 回答
86 浏览

git - Git:Cherry-pick 添加不在提交中的代码

我正在使用cherry pick从我在github上的分支添加提交。我有一个只有一个提交的分支,这与创建一个新函数有关。当我尝试使用cherry-pick添加该提交时,我与3个传入功能发生冲突!

我在 github 上的 PR 中的相同提交只添加了一个函数,但出现了 3 个函数冲突!。这意味着从另一个 PR 添加另外两个功能!

0 投票
1 回答
61 浏览

git - 单个缺失提交的 git-cherry 等效项是什么?

如何检查单个提交是否已应用于特定分支?

以文档git-cherry为例:

我怎么知道它具有与无需处理整个树cccc000相同的内容?- cccc111这可能吗?

请注意,它git-cherry依赖于补丁内容(差异),这是问题的关键。

0 投票
1 回答
140 浏览

git - 运行“git cherry”时如何获取 *other* commit-id?

“git cherry”命令非常适合识别已在上游应用的提交,但是如何获得与匹配的下游提交对应的 1-for-1 的确切上游提交 ID?

这是我的情况:

“git cherry”命令非常适合注意到 8ce948c、1e73b75 和 04876f4 已应用于源/测试(或至少与补丁等效的提交)。请注意此输出中这 3 个提交旁边的减号“-”:

但它并没有告诉我他们如何将 1-for-1 映射到我的本地提交(在我的“test-rebased”分支上)。有谁知道任何可以给我映射的 git 命令组合?注意:假设提交消息不稳定(即使它们在我的示例中)。它们可能在我的本地分支中发生巨大变化(例如,我可能会执行“git commit --amend”来重写提交消息)。

可能做到这一点的唯一方法是修补“git cherry”命令以添加额外的输出列(因为它肯定知道引擎盖下的映射),但我想我会问互联网是否有人知道这里有任何可能性在我冒险走那条路之前。

0 投票
1 回答
265 浏览

git - Git:如果分支中最新推送中的所有提交,则获取列表

我正在尝试在 gitlab-runner 中创建一个自动管道,它将应用最新的git push. 它正在获取推送中的最新提交(使用 gitlab-runner 中的 $CI_COMMIT_SHA 变量)。但是,如果推送有多个提交,它会忽略较旧的提交。因此,所有更改都不会应用到应用程序中。

我有以下查询:

  1. 是否为每个 git push 分配了任何 ID?基本上给定一个 git push Id,有没有办法找到所有底层提交?
  2. gitlab-runner 有没有办法找到最新的 git push 中提交的所有文件?此外,我更愿意保持他们提交的顺序。
  3. 我看到这git cherry可以给我未推送的提交列表。有没有办法,我可以通过变量将信息传递给 gitlab-runner?

提前致谢

0 投票
1 回答
69 浏览

git - 如何检测*合并提交*是否已经在分支中被选中?

可以检查哪些git cherry提交已应用于另一个分支,通常是上游。但是,这仅返回非合并提交。也git log --cherry ...排除合并提交,因为它暗示 --no-merges.

如果一个提交已经被挑选出来-x,那么源修订包含在提交消息中,因此至少可以git log --grep进行修订并检查它是否已经存在。

如果-x在挑选樱桃时没有使用,我如何能够稳健地检测合并提交是否已经被挑选到分支?