标签: git-cherry-pick

git rebase vs git cherry-pick of detached branch

我有两个分支:

  1. TMP

tmp分支是分离的
我需要把tmp分支放在master优先解决冲突的顶部tmp

当我做

git checkout tmp
git rebase --strategy=recursive -X theirs master
Run Code Online (Sandbox Code Playgroud)

我得到了错误首先,重新回头重温你的工作......

fatal: Could not parse object '0a722ac51071ecb4d00b1ef45384aac227b942a0^'  
Unknown exit code (128) from command: git-merge-recursive 0a722ac51071ecb4d00b1ef45384aac227b942a0^ -- HEAD 0a722ac51071ecb4d00b1ef45384aac227b942a0  
Run Code Online (Sandbox Code Playgroud)

当我做

git checkout tmp
git cherry-pick --strategy=recursive -X theirs 0a722ac..384144a 
Run Code Online (Sandbox Code Playgroud)

工作良好

我有什么区别或如何使用rebase做同样的事情?

git git-rebase git-cherry-pick

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

来自其他仓库的Cherry-pick Commit

我正在尝试选择此提交

https:// github(dot)com / AICP / frameworks_base /到https:// github(dot)com / Gopinaidu7 / android_frameworks_base

我用名称master创建了一个新分支,并切换到该分支。
然后我做了:

git cherry-pick 59ebfb7
Run Code Online (Sandbox Code Playgroud)

它得到了

fatal: bad revision '59ebfb7'
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

git cherry-pick 59ebfb7146616e57c15469d7ea85c4362c2fab3c 
Run Code Online (Sandbox Code Playgroud)

并得到这个错误

fatal: bad object 59ebfb7146616e57c15469d7ea85c4362c2fab3c.
Run Code Online (Sandbox Code Playgroud)

自从昨晚以来,我做错了并且确实尝试挑选那些提交。
我无法执行此操作,有人可以依次为我指出正确的命令吗?

git git-cherry-pick

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

可以从github上挑选所有PR(pull request)吗?

是否可以从github上挑选所有待处理的PR?

假设我有来自4个不同的分支存储库的4个PR等待审核。我需要将所有这些都应用于最新的源代码。

PR#65 Do something
PR#61 Notify this
PR#55 Fix that
PR#42 Show there
Run Code Online (Sandbox Code Playgroud)

我知道我可以将git remote add所有存储库一一挑选。但是,我相信会有一种更容易/更快捷的方式来挑选所有尚不知道的待处理的拉取请求;)

提前致谢

git github cherry-pick pull-request git-cherry-pick

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

对于特定的提交,Git合并和Git-cherry-pick有什么区别?

git merge <commit-id>和之间有区别 git cherry-pick <commit-id>吗?其中“ commit-id”是我要进入master分支的新分支的提交的哈希。

git git-merge git-cherry-pick

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

Git 合并不应用分支的所有提交

我最近在 git merge 方面遇到了很多麻烦。我发现,如果它是一个只有很少更改的小分支,那么一切都会按预期工作,但是每当我合并一个已触及文件分配并提交数天/数周的分支时,我发现运行“git mergebranch”时所有的提交没有被应用,所以我必须回顾并确定哪些提交没有被应用并挑选它们。这似乎是错误的,但我不太确定我的工作流程出了什么问题,使得我不得不这样做。

如何确保合并时“应用”指定分支中的所有更改?

任何帮助,将不胜感激!

编辑 -

对于那些想知道 git rebase 本质上是我正在寻找的东西的人来说。这并不是说我的更改被覆盖,也不是其他人所说的任何内容,我的分支远远落后于 master,而且可能是我使用 rebase -interactive 来压缩提交,我认为 git 在某种意义上失去了对已更改内容的引用。在我的分支上进行 Git rebase,检查 master 然后将我的分支合并到 master 修复了所有更改未通过合并的问题。

2020 年 12 月更新 -

我已经更新了我的合并流程,专门使用在线 github gui 并创建拉取请求,这完全解决了我曾经遇到的所有合并问题。

git git-merge git-cherry-pick

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

如何使用 git cherry-pick 跳过不精确的重命名检测

我有大约 10 个提交,我需要从一个旧分支到一个大型 repo 的当前分支中挑选。每次运行cherry-pick命令时,我都会得到以下信息:

$ git cherry-pick -x 11a77a55bf
Performing inexact rename detection:   0% (438032/938483560)
Run Code Online (Sandbox Code Playgroud)

我让它第一次完成,大约需要 10-15 分钟。但它对我选择的每个提交都这样做。有没有办法防止这种情况,至少对于当前命令?

我尝试设置 renameLimit 但它没有帮助:

git -c diff.renameLimit=1 cherry-pick -x 11a77a55bf
Performing inexact rename detection:   0% (1259342/938483560)
Run Code Online (Sandbox Code Playgroud)

git git-cherry-pick

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

gitcherry-pick 并在分支之间合并时出现意外行为

令我惊讶的是,在 git 中挑选之后所做的更改在合并时变得过时了。这是一个完整的例子。

以下是一切如常。

  1. 创建一个仓库
  2. 添加一个带有测试“rotums kanoner och krut”的文件
  3. 查看一个新分支,并添加文本行“mutors kanoner och krut”
  4. 检查 master 并用“mutors kanoner och krut”挑选提交
Mac:git user1$ mkdir myrepo; cd myrepo; git init
Initialized empty Git repository in /Users/user1/tmp/git/myrepo/.git/

Mac:myrepo user1$ echo "rotums kanoner och krut" > rotum.txt

Mac:myrepo user1$ git add rotum.txt 

Mac:myrepo user1$ git commit -m "Added file"
[master (root-commit) 1044abb] Added file
 1 file changed, 1 insertion(+)
 create mode 100644 rotum.txt

Mac:myrepo user1$ git checkout -b mybranch
Switched to a new branch 'mybranch' …
Run Code Online (Sandbox Code Playgroud)

git git-cherry-pick

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

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

我试图通过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
查看次数

cherry-pick是应用更改还是尝试合并整个文件的内容?

我正在读这篇关于樱桃采摘的文章,那里有如下图:

在此输入图像描述

但是,这张照片似乎对我有误导性.从我的简单测试来看,似乎不仅仅是区别,而是整合了整个文件内容.这是实验:我有这个提交图:

A--B
 \
  C
Run Code Online (Sandbox Code Playgroud)

Commit A有这样的内容file.txt:

l1
l2
l3
Run Code Online (Sandbox Code Playgroud)

提交B有一点变化:

l1
l2-new
l3
Run Code Online (Sandbox Code Playgroud)

提交C有一点变化:

l1
l2
l3-new
Run Code Online (Sandbox Code Playgroud)

所以现在我正在尝试使用cherry-pick 重放提交B提交C,

git cherry-pick B
Run Code Online (Sandbox Code Playgroud)

我发生了冲突,

<<<<<<< HEAD
l2
l3-new
=======
l2-3
l3
>>>>>>> C
Run Code Online (Sandbox Code Playgroud)

如果仅应用更改,则不应存在.因为我l2C提交中没有触及行,所以应该顺利应用.我对吗?

git git-cherry-pick

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

我可以将“ git rebase”表示为一系列的樱桃小食吗?

似乎“ git rebase”具有其他后备逻辑来处理合并失败:

Falling back to patching base and 3-way merge...
Run Code Online (Sandbox Code Playgroud)

它在那里正在做什么,我将如何调用我的樱桃小贴士来获得相同的行为?

可能正确的解决方案是不尝试将重新基准表示为一系列的小问题,但如果可能的话,那将是很好的,因为我可以使用相同的流程处理重新基准和任意更改集合。

git git-rebase git-cherry-pick

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