问题标签 [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.
git - 在 TortoiseGit 中只看到不在另一个分支中的提交
我正在使用 TortoiseGit 1.8.3.0。我想研究在给定分支中做了哪些更改。在命令行上,我会签出这个分支并启动git cherry -v origin/master
,这会给我当前分支中不在 master 中的提交列表。
我怎样才能在 TortoiseGit 中做同样的事情?我想会有一种方法来过滤日志窗口,以便它只显示这些提交......
我得到了一个指向这个 tortoisegit 错误报告的指针。这意味着我应该能够从版本 1.8.2 开始执行此操作,但我没有找到如何...
git - 查看带有描述的分支(git cherry)之间的提交?
git cherry命令非常适合查看两个分支之间发生了什么提交。但是,默认情况下,它只会为您提供提交 ID 列表 - 信息量不大。
如何获得包含更多信息的相同列表?
git - git-cherry 中的“樱桃”是什么意思?
git-cherry中的樱桃这个词是什么意思?
除了水果,我只出现在樱桃采摘表达式中的词(在 git 中也存在git-cherry-pick),这意味着选择性地采摘一些东西(对吗?)。
在我看来,樱桃中git-cherry
的樱桃与水果无关,也与樱桃采摘无关。
我是巴西人,所以英语的微妙之处有时并不那么明显。
git - Git:如何列出精心挑选的提交?
如何列出在 Git 中精心挑选的提交?让我们假设以下场景:cp = cherry-pick commit
是否有一个日志命令来列出cherry-pick 提交 cp1 和 cp2 ?
谢谢。
git - 当一个相同的提交在过去被挑选出来时,git cherry 将一个新的提交显示为挑选出来的
假设有两个分支 branch1 和 branch2,并且在两个分支上都有一个 test.txt,其中包含以下行“opt:true”。
将两个分支上的值从“true”更改为“false”。
在 branch1 上,将值从“false”更改为“true”并提交。
表明最新的提交不是精选到 branch2。
+ dc703edb4cf0f90fa1b5294cc5bea5c63c849229
在 branch1 上,将值从“true”更改为“false”并提交。
表明最新的提交是精心挑选的(尽管它不是挑选的),因为在 branch2 上已经有一个相同的提交。
/+ dc703edb4cf0f90fa1b5294cc5bea5c63c849229
/- 9d767893962c0dd0d957e2c038bb2ef06df2fee3
有没有办法将分支 1 上未精选到分支 2 的提交的真实列表 git?
git - 如何复制(不移动)一个 git 分支并合并到另一个
我正在尝试重新组织 GIT 存储库,其中充满了无组织的分支。现在我们想在那里建立一些结构(开发、生产、功能、......分支)并删除/压缩许多小的更改。但是需要一些东西来保持现状,因为有人在努力。
所以我创建了大结构,把旧的东西压在一起(不再对多年前的小错字修复感兴趣),并在今年开始基本上修复了所有东西。
但是现在问题来了 - 一些分支是活动的,不能被完全压扁,不能被删除/移动(直到新模式证明可以工作一段时间)并且内部包含很多小的合并,如下所示:
我想将其复制到适当的功能分支之上,例如
(架构更复杂,这是有问题的部分)
我想做类似的事情
但它会导致所有这些合并发生冲突
提交(合并)解决了I
所有这些冲突,但它没有被应用并且樱桃采摘停止
最好的出路是什么(除了从一开始就组织好)?
编辑 - 添加示例:
我有
请看,分支Adam
中存在冲突(3e5f111 和 897bfc3 分别添加行Adam_a
和Adam_b
到同一个地方),开发人员 Adam 在 c04efb0 中以某种方式解决了这个问题(通过在那里写一些完全不同的东西,比如Adam_* # it does not matter
左右)
我想添加新的分支develop
- 这很容易master
现在我想添加带有内容的分支feature_1
(over ) (但不必手动解决所有已经解决的冲突,我希望合并(4444567)与分支相同)develop
Adam
Adam
得到这个:
(稍后我将删除Adam
and master
)
git - Cherry-picked 提交具有不同的哈希值
假设我这样做了,我会得到一个在但不在git log branch-A..branch-B
的提交列表。我还可以通过颠倒顺序来获得提交列表,但不能获得提交列表。branch-B
branch-A
branch-A
branch-B
几乎每个提交branch-A
都被精心挑选到branch-B
中,但是我注意到git log
显示已被挑选的提交。特别是,我注意到精选提交的提交哈希与 inbranch-B
不同branch-A
。有人知道为什么会发生这种情况吗?如果是这样,如何执行差异以便它不会捕获这些误报?
git - GIT 使用 git cherry 和格式显示 master 中缺少的分支的所有提交
我想用来git cherry
显示所有提交到特定分支但从主分支中丢失的提交,并使用漂亮的格式记录下来。
我试过这个:
这样做是为了:
git cherry master branch_name
- 在终端中逐行列出所有在 branch_name 中而不在 master 中具有代码的提交的哈希值,反之则在哈希值之前使用 + 或 - 号。grep "^+"
- 只获取以 + 开头的那些(实际上从 branch_name 中缺少的那些)sed 's/^+ //'
-+
从行中删除,以便我们只能获得哈希。xargs -I {} git --no-pager log --pretty=format:'%h,%an,%d,%ae,%ad,%s' --date=short -1 {}
- 将每个哈希作为参数传递给 git log 以显示每个哈希的格式化日志。这里--no-pager
的意思是退出 git log 窗口并-1
只显示 1 次提交。
这样做的问题在于,它开始将 git cherry 返回的每个散列的每个结果连接在同一行。它不会逐行执行,因此我可以复制粘贴它们,也可以使用 .csv 文件将它们保存到 csv 文件中... > tmp.csv
。
不确定是否还有其他我可以使用的东西,xargs
或者这实际上是 git log 的问题,这不起作用。
我错过了什么?我做错了什么?
谢谢大家,很抱歉成为菜鸟。
git - 如何使用 git cherry 获取提交者电子邮件?
git cherry
优于git log
获取两个分支之间的差异。问题是它的输出是有限的。
我正在尝试提取与提交关联的电子邮件地址(或用户)。这就是我正在做的事情。
我得到的只是一次提交的详细信息。而不是我所做的每一次提交:
第二个管道操作出了点问题。
我的问题是:如何使用 git cherry 获取提交者电子邮件?
git - “git cherry”将一个已经挑选好的提交显示为“准备应用”
我一直在研究分支align
,想从中挑选一些提交到master
. 我git cherry
用来寻找候选提交:
我的理解是 '+' 表示在master
. 但我记得已经挑选了这个承诺master
。事实上,这是rw-fwd.h
对分支文件的最新更改align
:
并且仍然是分支上 rw-fwd.h 的最新更改master
:
状态文档git cherry
:“等效测试基于差异,在删除空格和行号之后。git-cherry 因此检测提交何时通过 git-cherry-pick[1]、git-am[ 1] 或 git-rebase [1]。” 从视觉上看,使用git show
,提交看起来是一样的,但让我们绝对确定:
补丁 ID 是相同的。为什么git cherry
没有检测到这个提交已经被挑选出来了?
编辑:下面是经过消毒的git log --oneline --decorate --graph。 我添加这个是为了回应@torek 的答案,不是因为我怀疑答案是否正确,而是因为我会根据该答案在解释真正的提交日志方面提供一些帮助。
master
位于 a52f43e(第一行)和align
9ffa94e(第三行)。
align
是图上最右边的线,一直向下,并且不合并。
查看上面日志的底部,c2bbb3d 是对 的初始提交align
,5bc790b 是对master
. 67154d6 我期望是共同的祖先,那是输出git cherry
停止的地方。
我仍然无法回答的问题是,我怎样才能获得align
尚未提交的提交列表master
?似乎任何从 可到达align
但不是从的提交master
都是候选者,只要它还没有被挑选到master
。任何馈入的分支master
都必须检查樱桃挑选 - 包括图中除了最右边的每个分支,align
.
注意:我们已经使用 git 几个月了,所以我很确定我们正在做的大部分事情都不是最佳实践。我们从反复试验中学到了很多东西。