问题标签 [git-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.
git - 我应该如何使用 git rebase 删除 git cherry-pick 引入的重复提交?
我有点困惑git rebase
。
我有一个develop
分支和一个staging
分支。我已经develop
融入staging
但是由于樱桃挑选,有一堆重复的提交;我想删除重复项。我应该执行以下操作吗?
更新:这git merge develop
是本地的,所以我还没有推送它
git - 挑选标签会影响后者吗?
在发布时,我检查了之前发布的标签并挑选了新项目(使用git cherry-pick <commit-id>
)放入其中。然后,我使用git tag <tag-name>
.
这会影响我挑选更改的旧标签吗?
git - 为什么 git 的一次以上提交的樱桃采摘失败?
我尝试合并两个回购,产生一个平坦的(也就是交错的)历史。我按照“历史重写:”下的https://stackoverflow.com/a/14839653/188108的方式执行此操作。
要合并的两个分支在“master”和“src/master”中。然后,我写:
那么,为什么第一个cherry pick 命令失败了,但是split 命令有效呢?我使用 git 1.9.1。
git - GIT 公共分支清理到新分支
我必须清理一个远程/公共分支“OLD”,因为它包含一些错误/巨大的提交。
OLD - 简化图
为此,我做了:
1)我创建了一个“新”分支。
2) 在第一次大提交之前返回 (c234)
3) Cherry 在最后一个大提交之前挑选所有提交。(c236)
4)然后我在最后一次大提交(c237)之后从“OLD”分支复制了所有更改的文件
5)最后创建了许多反映变化的小提交(c235,c237)
现在新 - 简化图
现在在我看来,我必须将(c237)之后对“OLD”所做的所有更改重新设置为“NEW”顶部
新的预期 - 简化图
我在这个 git-rebase -i 之前尝试过,但因为这是一个公共回购,它包含许多(有近 400 次对 OLD 的 HEAD 的提交)合并,有时我不得不解决冲突 - 女巫可能需要我很多天。
任何想法如何处理它。
git - 如何在樱桃挑选后删除无主分支中的旧提交?
在主分支中,我有以下提交:
在分支“测试”中,我有:
我做了:
但是,我不想在“测试”分支上提交 B。我怎么能忽略它?这样测试分支最终会像:AC
git - git cherry-pick 一系列提交以防止历史损坏
问题的简短描述
在一个新的开发人员组加入我们的项目后,他们初始化了一个新的 repo 并将master 的快照复制(未合并!)到新创建的 repo 中。因此,在他们的分支中,旧文件丢失了master
. 之后,他们开始了典型的 git 工作流程,包括提交、分支、合并来自 master 的更新等。现在的问题是将他们的代码合并到master
或dev
排除前两次提交并保留我们的历史记录(并且保留他们的历史记录也很好)。
详细问题描述
所以我们有分支master
:dev
和funny_developers
。
这是我们的分支结构:
I...C...X
- 是我们的主要开发流程(master
现在dev
分支已同步)与提交历史。此流没有从funny_developers
分支导入
I'
- 是一个提交,其中funny_developers
重新启动了一个空的新仓库(似乎他们做了git-init
?)。
IABC
- 非常脏的提交,将提交时funny_developers
存在的所有文件复制为新文件。不合并 from ,只是重新创建项目的文件结构!所以他们放弃了在分支演化过程中所做的所有更改历史)。master
C
C
master
G..Z
- 是他们进行大量更改的大量提交。在这个流程中,他们还多次合并了来自 master 的更新,创建了自己的分支,将它们合并到funny_developers
(有时通过冲突解决)等等。
所以现在我在合并G..Z
到master
保留我们最初的提交历史和它们(排除I'
和IABC
提交)时遇到了问题。
问题
您能否建议我最好的方法(如果存在)来获取他们的提交master
并保留提交历史记录,不包括前两个?
我一次拯救女王和王国的实验
我试过了git cherry-pick G..Z
。但他们在并行分支中进行编码,并且正在将大量合并到funny_developers
. 他们解决了很多自己的分支冲突。如果我决定使用这种方法,我似乎需要很多时间来再次解决它们。
我试过git rebase --onto master IABC Z
了,期待它能够将所有的分支桶移动G..Z
到master
. 但是我遇到了一堆与很久以前的提交相关的冲突(甚至在'funny_developers'开始之前)。而且我无法理解它们与实际 rebase 的关系(可能是因为他们已经重新初始化了 repo ......)。
无论如何,如果我找不到保留“两个历史”的解决方案,我倾向于为他们的所有工作制作差异,并将其作为单个补丁提交提供给master
.
git - Cherry 在 Git 中挑选一系列提交
我希望能得到一些想法。我有三个分支:
- 掌握
- 具体的
- 特征分支
master
包含通用代码库,因此如果我想稍后进行分支以创建一种新的实现类型,我可以轻松地做到这一点。但现在specific
是我的主要开发分支。
所以我分支specific
到feature-branch
测试一个新功能,一旦我满意,我就合并feature-branch
回specific
.
但是有一些提交是特定于实现的specific
,我不想合并回master。大多数代码是通用更改,我确实想合并回来。
我将大约 30 个更改feature-branch
从specific
. 在这 30 个中,大概有 20 个我想从 合并specific
到master
.
对我来说最好的方法是什么?
我应该只挑选要合并的每个提交master
吗?如果是这样,我是否应该按时间倒序排列(即,获取我想要合并的最旧的提交,然后是第二旧的提交,依此类推 - 樱桃将它们全部重新放入master
)。
欢迎任何想法。谢谢
git - 如何`git cherry-pick`一个系列?
我想挑选一系列提交。这是因为 (1): --ff-only merge 也不是 (2): rebase off each other 也不是 (3): rebase both off a shared branch 和 retrying (1) 在我的特殊情况下工作,因为我的分支是如此广泛分歧和不同。然而,我想要挑选的提交位于代码库中很少触及的部分,因此这里没有合并冲突的风险。我如何不必逐个挑选一大堆提交来节省时间?
git - 只提交阶段/索引,忽略冲突
我有一个巨大的承诺,我选择了它。选择现在创建了一个冲突总和(在工作树中)。现在我想提交所有分阶段(成功合并)的更改,而不必解决所有冲突。
天真地我一直认为,commit 只会在舞台上起作用,但是当我尝试时,我得到的信息是,如果不解决冲突,我就无法提交。
有人可以向我解释发生了什么以及如何解决它。
git - 可重复的 git cherry-pick
git cherry-pick
不是幂等的,因为在挑选樱桃后提交哈希取决于当前时间和当前用户(作为提交者)。
我想要幂等性,这意味着序列的两倍:
然后再一次:
两次都在 HEAD 处产生完全相同的提交哈希。
有没有办法告诉 git 从原始提交中重用提交者名称和提交者日期?