标签: cherry-pick

如何挑选选定的提交集?

我想选择特定的提交集来挑选到新分支。

main-branch
* commit8
* commit7
* commit6
* commit5
* commit4
* commit3
* commit2
* commit1
Run Code Online (Sandbox Code Playgroud)

我只想创建一个包含选定提交的发布分支。

release-branch
* commit7
* commit6
* commit4
* commit2
* commit1
Run Code Online (Sandbox Code Playgroud)

是否可以为所需的提交关联一个标签,并编写一个脚本来用特定标签挑选提交?

git github cherry-pick

2
推荐指数
1
解决办法
1017
查看次数

当不进行樱桃采摘时,之前的樱桃采摘现在为空

我正在尝试使用 删除提交列表git rebase -i HEAD~19。我过去曾成功地使用过此方法,但是当我尝试运行然后退出vim而不进行任何更改(:q!)时,我收到此错误:

The previous cherry-pick is now empty, possibly due to conflict resolution.
If you wish to commit it anyway, use:

    git commit --allow-empty

Otherwise, please use 'git cherry-pick --skip'
interactive rebase in progress; onto dd0b851
Run Code Online (Sandbox Code Playgroud)

我不是在挑选,也不知道为什么我会遇到要跳过的错误。

git rebase cherry-pick

2
推荐指数
1
解决办法
2706
查看次数

应用樱桃酱

我给你一个简单的问题GIT大师:

在GIT手册页中,我有这个

man git-cherry-pick

...
git-cherry-pick - Apply the changes introduced by some existing commits
...
Run Code Online (Sandbox Code Playgroud)

我的疑问是:当我选择提交到另一个分支时,此提交被移动到另一个分支或复制(应用于两个分支)?

git cherry-pick

1
推荐指数
1
解决办法
154
查看次数

将提交应用于多个发布分支 - Git Rebase或Cherry-Pick?

我正在开发一个带有Master分支的项目,当然:P和多个发布分支随着时间的推移而创建.我正在使用的版本控件是Git,我正在寻找一种方法,将一个版本分支中的错误修复(例如)应用于其他版本,如果可能的话.即..

--------------------------Master
|      |        |__v3
|      |__v2
|___v1
  |____bugfix
Run Code Online (Sandbox Code Playgroud)

如果我修复了v1中发现的bug,并且需要在v2和v3中应用相同的修复(并且只修复),有没有办法可以在Git中方便地执行此操作?

我是Git的新手,但我认为我可能能够奇瑞 - 选择提交并应用它,但我想知道分支是否需要在层次结构中直接相关?是否有可能从v1下的'bugfix'到v2和v3进行挑选或修改?(或v3到v2等)Afaik,rebase将重播所有提交,所以我认为樱桃选择是我正在寻找的,但我不确定如何实现这一目标.帖子我看到从孩子到父母分支的樱桃挑选.是我试图做的可能吗?

干杯.

git cherry-pick

1
推荐指数
1
解决办法
1848
查看次数

如果我挑选的话,为什么我不能推动这些改变

我试图通过rebase/cherry-pick删除最后两次提交.调用后git rebase HEAD^^^ -i,我只留下必要的承诺(把一切都达到HEAD^^,所以我下降HEAD^HEAD).

git push我看到以下内容之后:

! [rejected]        dev -> dev (non-fast-forward)
error: failed to push some refs to 'git@bitbucket.org:XXXXXX/YYYYYYYYY.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

git pull只是快速前锋和前HEAD提交.所以,我最终得到了我的开始.我究竟做错了什么?

git rebase git-rebase cherry-pick git-cherry-pick

1
推荐指数
1
解决办法
6064
查看次数

git cherry-pick 在提交消息包含字符串/匹配正则表达式的范围内提交吗?

背景/场景

我有一个本地工作流程

  • 我总是在“本地”分支(“master”的祖先)上提交,使用以问题编号开头的提交消息,例如“#123: Some message”。
  • 我创建的功能分支也是“master”的祖先。
  • 然后我使用 rebase 和/或cherry-pick 将提交从本地复制到相应的功能分支。

例如,一种方法可以做到这一点:

git checkout local
git checkout -b 123-my-feature
git rebase -i master
Run Code Online (Sandbox Code Playgroud)

在交互式 rebase 编辑器中,删除消息不以 #123 开头的所有提交。这留下了一个特性分支 123-my-feature,它只包含来自问题 #123 的提交。

稍后,在分支 123-my-feature 已经存在之后,如果消息以 #123 开头,则还需要选择/复制本地上的后续提交到 123-my-feature 分支。这也可以通过交互式 rebase 或单独的cherry-picks 实现。但是过程很繁琐。

有没有办法用cherry-pick来做到这一点,并通过提交消息自动过滤?

例如

git checkout master
git checkout -b 123-my-feature
git cherry-pick master..local --commit-message-begins-with="#123"
Run Code Online (Sandbox Code Playgroud)

或者甚至是一个交互式的cherry-pick,我可以在其中手动删除不以“#123”开头的提交。

如果有另一个命令可以实现这一点,为什么不呢。不一定非得挑剔。

git branch rebase cherry-pick

1
推荐指数
1
解决办法
949
查看次数

Cherry通过合并提交选择了一系列提交

我需要挑选一系列提交,但是失败了,因为在这个范围内,我合并了一些分支。是否可以做到没有冲突?

git cherry-pick git-cherry-pick

1
推荐指数
1
解决办法
1327
查看次数

Git如何与两个父母进行空提交

我在为工作找到正确的 git 命令时遇到了一些问题。

我工作的地方目前正在切换源代码控制(TFVC -> Git)。但是,TFVC 中的旧版本仍然需要不时修复错误。

我通过使用一些 PowerShell 脚本创建构建来处理这个问题,以确保我的“tfvc-merge”分支包含这些更改。

所以这就是我之后所做的。

  • 从集成分支结帐
  • 我从“tfvc-merge”分支中挑选提交到我的“mergerhandler”分支
  • (我的问题)现在我想做一个有 2 个父母的空提交。第一个父项是我在“MergeHandler”分支上所做的最后一次提交,下一个父项是“tfvc-merge”分支的提交。

我试着把它画出来。所以基本上,拉取请求中的空提交将在我的绘图中具有 1 和 2 的父项。

樱桃挑选策略

我一直在四处寻找,几个小时没有找到正确的方法来做到这一点。因此,如果有一个提示可以为我指明正确的方向,那就太好了。提前致谢。

git cherry-pick git-commit

1
推荐指数
1
解决办法
593
查看次数

Git cherry-pick未能选择正确的变化

注意:这是我身边的错误.我挑选了父哈希.请参阅本update节.
原始问题:
vmu_hw_test在分支"test_imu"中有一个文件,其变化类似于下面所示

if( g_imu_spi.readFromFifo() == 0)
{
    //Find local maxima and minima event
    g_imu_spi.compute_event();
    //compute the euler
    g_imu_spi.compute_euler();
    //From the average values compute the max
    //g_imu_spi.compute_Max();
    g_imu_spi.compute_Max(buffer);
}
Run Code Online (Sandbox Code Playgroud)

if提交中引入了声明和删除评论.
master分支有

//Find local maxima and minima event
g_imu_spi.compute_event();
//compute the euler
g_imu_spi.compute_euler();
//From the average values compute the max
g_imu_spi.compute_Max(buffer);
Run Code Online (Sandbox Code Playgroud)

问题
1.正如我所读到的,cherry-pick只需进行一次提交更改并应用它.如果分支不同(在提交历史记录中)是否有问题
2.微软文档说不要挑选.樱桃挑选是不好的做法?
3.为什么樱桃选择失败?(更新:没有.)

Git Diff
对于最新的提交test_imu.c

diff --git a/Src/vmu_hw_test.c b/Src/vmu_hw_test.c
index 14b0a67..1954d64 100644 …
Run Code Online (Sandbox Code Playgroud)

git cherry-pick

1
推荐指数
1
解决办法
314
查看次数

为什么git cherry-pick冲突包括上一次提交的更改

我有一个暂存分支,在其中我对某个功能进行了一些提交,而我需要从master分支进行这些提交。我尝试使用来从master分支中签出一个分支git checkout -b branch_name,然后使用 进行了我想要从登台分支中挑选的第一笔提交 git cherry-pick hash。出于某种原因,与樱桃采摘有冲突,但是该冲突包括从先前提交到樱桃采摘的更改,为什么呢?

git cherry-pick

1
推荐指数
1
解决办法
176
查看次数

Git正在复制代码

我们刚刚从Subversion切换到Git.

今天早上出现的问题是我们挑选了一个从一个分支到主人的提交,所以maser会有bug修复.然后我们将master合并回分支.

当我们尝试编译时,所选择的提交中的所有添加都在代码中两次.

樱桃挑选的提交包括添加几行代码,最后在代码中两次.幸运的是,它们是完整的函数,所以它抛出了编译器错误.

从未提出过冲突.

我们如何避免这种情况.这是一个主要问题.

谢谢.

git merge commit duplication cherry-pick

0
推荐指数
1
解决办法
1346
查看次数

如何合并来自同一存储库中不同分支的特定提交 ID

我有两个分支主和主干。

我在本地创建了另一个分支,git checkout -b new_branch origin/master用于在该分支中获取主代码。

我在这个新分支中添加了一些更改并推送为:

git add --all
git commit -m "my custom message"
git push origin new_branch
Run Code Online (Sandbox Code Playgroud)

现在我只需要在我的主干分支中合并这个提交 id 更改(在分支 new_branch 中)。

我知道git cherry-pick任何人都可以确认以下程序是否正确:

第 1 步:我必须使用git checkout trunk
第 2 步切换到主干分支现在使用git cherry-pick MY_COMMIT_ID
第 3 步合并提交 ID 现在使用git push origin trunk
第 4 步将这些更改推送到主干现在git pull origin trunk在远程服务器中使用

git git-add cherry-pick git-commit git-branch

0
推荐指数
1
解决办法
3474
查看次数

如何在我的cherry pick 命令中包含我的第一次提交?

悬崖笔记版本

  • 假设我想运行此命令:git cherry-pick ABC..XYZ。我想ABC被包含在我对当前分支的提交中。我必须先参考提交ABC吗?

长版

  • 所以我有分支机构masterAppleNewApple
  • Apple建立在一个非常旧的版本上,master但只适用于十几个文件,这些文件是在文件夹中实现的,其余文件master并未真正触及。
  • Apple有提交ABCBCDXYZ。这些是Apple. 请注意BCDXYZ. These commits were NEVER commited tomaster`之间大约有 10 次提交
  • 因此,我创建了一个新分支NewApple,它是从master具有较新提交的较新版本分拆出来的。
  • 然后我从挑选提交AppleNewApple像这样git cherry-pick ABC..XYZ
  • 但是,当完成并提交到我的远程存储库时,我注意到它ABC没有包含在内。在它之后的所有东西都XYZ被放到了NewApple.
  • 我希望能够在ABC不引用Apple. 恐怕如果我这样做了,我将无法获得所有提交,Apple或者它会尝试在master新版本的 master 之上随机合并较旧的提交。

git cherry-pick

0
推荐指数
1
解决办法
503
查看次数