标签: cherry-pick

合并跟踪Git樱桃采摘?

例如,我有一个dev分支和一个stable分支.

如果我有樱桃采摘几个从承诺devstable.

有没有什么办法让Git的认识樱桃采摘提交的,并避免双合并,如果我以后合并,重订或摘樱桃的重叠范围,从devstable?(这是SVN中的基本合并跟踪功能)

git cherry-pick

27
推荐指数
3
解决办法
5728
查看次数

Backport从重命名的文件更改

我有两个分支:主干,生产.我在trunk中发现了一个问题,修复并提交了它,推了它.现在它已经过测试,我需要将更改合并到生产分支中作为热修复.我尝试使用樱桃挑选.但是它不起作用,因为修复程序中的更改文件在某些​​重构期间在先前在主干中重命名,我不想将其投入生产.

我不希望合并所有内容,但只采取此提交.樱桃选择失败了"我们删除"冲突(当然,新文件甚至从未存在于生产分支中).

将更改带入旧文件的正确方法是什么?

git cherry-pick

23
推荐指数
3
解决办法
4409
查看次数

Git,'致命:樱桃选择失败'

我在一个分支机构工作X.我做了一个提交并推了推.

然后我想cherry-pick分支Y.但由于存在一些未合并的文件,我收到以下消息:

error: 'cherry-pick' is not possible because you have unmerged files.
hint: Fix them up in the work tree,
hint: and then use 'git add/rm <file>' as
hint: appropriate to mark resolution and make a commit,
hint: or use 'git commit -a'.
fatal: cherry-pick failed
Run Code Online (Sandbox Code Playgroud)

现在,我只想删除我的分支Y,然后重新创建分支Y,然后想要手动编辑我试图挑选的文件.

目前,我无法删除分支,因为它是我的工作分支.我不能checkout任何其他分支.尝试更改分支时出现以下错误.

mod/assign/locallib.php: needs merge
error: you need to resolve your current index first
Run Code Online (Sandbox Code Playgroud)

我只需要删除分支Y,而不会丢失分支上的任何内容X.

编辑#1

我编辑了这个文件 mod/assign/locallib.php …

git cherry-pick

23
推荐指数
1
解决办法
3万
查看次数

如何从git的藏匿中挑选樱桃?

我想知道是否可以从藏匿处采摘樱桃.

git stash save "test cherry-pick from stash"

*git cherry-pick stash@{0}* --> Is this possible?
Run Code Online (Sandbox Code Playgroud)

我在exception上面尝试时得到以下内容command:

Error:

~/Documents$ git cherry-pick stash@{0}
error: Commit 4590085c1a0d90de897633990f00a14b04405350 is a merge but no -m option was given.
fatal: cherry-pick failed
Run Code Online (Sandbox Code Playgroud)

git cherry-pick

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

樱桃采摘合并提交时的主线父母号码

假设这是我的git历史

  Z
 /
A -- C -- D
 \  /      
  B

我的HEAD目前在Z.我想樱桃挑选BC.如果我的理解是正确的,我应该这样做:

git cherry-pick B
git cherry-pick C -m 1
git commit --allow-empty
Run Code Online (Sandbox Code Playgroud)

它在我的情况下工作,因为C是一个无操作(因此之后的空提交,我需要提交其他原因),但我想知道后面的参数是什么-m.以下是我从文档中读到的内容:

-m父号

- 主线父母号码

通常你不能挑选合并因为你不知道合并的哪一边应该被认为是主线.此选项指定主线的父编号(从1开始),并允许cherry-pick重放相对于指定父级的更改.

在我的情况下,C有两个父母,但我怎么知道哪一个是1和2,更重要的是当我选择1或2时什么时候重要?

git cherry-pick git-cherry-pick

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

TortoiseSVN cherrypicking

我准备将trunk中的某些修订版合并到发布分支中.我已经使用mergeinfo检查了有多少修订版本有资格合并,那就是42.虽然确定可能并且不太难以检查每个修订日志并决定是否应该合并.然后我会用TortoiseSVN检查日志并使用命令行svn merge -c rev1,rev2功能或-r当然的范围.

我想知道TortoiseSVN是否有一个工具来使这个樱桃更容易.我已经google了,但发现只有TortoiseGit才有它.

任何其他使这个过程更容易(和更快)的方法也是受欢迎的!

svn version-control tortoisesvn cherry-pick

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

为什么git log --cherry-pick没有删除等效的提交?

我一直在尝试使用

git log --no-merges --cherry-pick --right-only master...my-branch
Run Code Online (Sandbox Code Playgroud)

生成my-branch中但不在master中的提交列表(根据git-log文档).但是,列表中仍有许多等效的提交.如果我显示它们和它们的补丁,除了commit id之外没有区别.

git show 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621 >patcha
git show c53c7c32dcd84bfa7096a50b27738458e84536d5 >patchb

diff patcha patchb
1c1
< commit 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621
---
> commit c53c7c32dcd84bfa7096a50b27738458e84536d5
Run Code Online (Sandbox Code Playgroud)

甚至将git patch-id它们视为等效:

git show c53c7c32dcd84bfa7096a50b27738458e84536d5 | git patch-id
2b5504fb9a8622b4326195d88c7a20f29701e62b c53c7c32dcd84bfa7096a50b27738458e84536d5
git show 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621 | git patch-id
2b5504fb9a8622b4326195d88c7a20f29701e62b 16cbd0e47406a4f7acbd6dc13f02d74d0b6a7621
Run Code Online (Sandbox Code Playgroud)

怎么不git log --cherry-pick把这些作为重复?

git cherry-pick git-log git-cherry-pick

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

git cherry-pick到另一个分支

我想知道是否有办法将一个提交复制到另一个分支而不检查该分支.

例如,我有两个分支:masterparallel_version.

我在parallel_version分支机构,我在这些分支机构的常见文件中发现了一个错误.

我已修好并承诺.如果我使用git-svn,如何将此提交复制到另一个分支?

通常我会这样做:

$ git checkout master
$ git cherry-pick parallel_version
$ git checkout parallel_version
Run Code Online (Sandbox Code Playgroud)

有更好的方法吗?

git branch cherry-pick

20
推荐指数
2
解决办法
7375
查看次数

在 GIT 上推送更改时出错。引用名称必须遵循 git ref-format 规则

我在 Sourcetree 上使用 git 有一个错误。我创建了一个名为 sprints/Mycompany_sprint_1 的本地分支(因为我希望它属于一个类别),然后我从另一个分支中对该分支进行了多次挑选。之后,我尝试将所有更改推送到我的分支上,但我收到下一个错误:

远程分支 ''(本地分支 = 'sprints/Mycompany_sprint-1')无效。Ref 名称必须遵循 git ref-format 规则:https : //www.kernel.org/pub/software/scm/git/docs/git-check-ref-format.html 已完成,但有错误,见上文。

但是,如果我转到链接,我将遵循(就我所见)所有规则,因为查看第一条规则:

它们可以包含斜杠 / 用于分层(目录)分组,但斜杠分隔的组件不能以点开头。或以序列 .lock 结尾。

我检查问题是否可能是 spring 类别已经存在,但事实并非如此。
谁能告诉我我做错了什么?我恐怕看不到这里的错误......

git remote-branch cherry-pick git-branch

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

git stable branch:找不到樱桃选择的提交

我有以下git历史:

A --- B --- C --- D' --- E' [master]
 \
  \ --- D --- E --- F [stable]
Run Code Online (Sandbox Code Playgroud)

我们有一个策略来挑选从稳定到掌握的所有变化; D'和E'是来自稳定分支的樱桃采摘承诺,F不是樱桃采摘(已被遗忘).

我怎样才能得到一个与F绑在一起的差异(这不是樱桃挑选给主人)?


我们不希望使用合并,因为:

  • 没有合并提交的清洁历史记录
  • 承诺稳定是罕见的
  • 我们有很多不同的稳定分支

git diff git-diff cherry-pick

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