1.大家都知道不同分支间的commit,可以使用git cherry-pick命令来获得其它分支上的提交。一般情况不出问题的话,我们点击cherry-pick复制链接之后。

在我们本地仓库直接使用我们刚才复制的链接,就可以cherry-pick成功。但是加入我们cherry-pick失败了呢。这里我们就来分析解决失败的情况。

冲突代码 (cherry pick )

hal3/Camera3Stream.cpp \

1.<<<<<<< HEAD // 表示我们 cherry pick 过来的代码的 HEAD 在这里,即代码修改起始位置。

# hal1.0/src/CameraHardwareInterface.cpp

2.=======

5.hal3/Camera3Flash.cpp \ // 这之间就是冲突点,之前就是在 CameraHardwareInterface.cpp 前面加了 CameraHardwareInterface.cpp文件

3.hal1.0/src/CameraHardwareInterface.cpp

4.>>>>>>> 9fc22d0... Bug #534024 - [APPS_TJ][ 客户需求 ]

endif

这里为了解决冲突,我们把1.2.3.4行删除掉,把5处放到1标号位置。然后

git add .

git commit

这个时候我们会发现会出现下面红色的字样,这是由于我们cherry-pick过来时候i,由于有冲突,保存的历史记录。

================================================

[tag_product ] common

Conflicts:

Camera.mk

hal3/Camera3Hal.cpp

Change-Id: I5bef49017323f041857d5498939a9d4d6992d4e0

================================================

假如我们不去掉Conflicts,那么我们在 git push 的时候,会出现下面这个问题(将然有两个change-id)

remote: [tag_product ] common

remote:

remote: Change-Id: Id4c396b9d8d9607af7cd69df76da547e51193ab7

remote:

remote: Conflicts:

remote:

remote: Camera.mk

remote: hal3/Camera3Hal.cpp

remote:

remote: Change-Id: I5bef49017323f041857d5498939a9d4d6992d4e0

删除掉Conflicts字样,重新git push,这样我们就可以保留之前的change-id,不用重新生成一个change-id.

Git 是一款分布式版本控制系统,它提供了许多强大的功能来管理代码的版本和变更。其中之一就是命令,它允许我们选择某个分支上的一个或多个提交,并将它们应用到当前分支上。这个功能非常有用,可以帮助我们在不合并整个分支的情况下,将特定的提交应用到其他分支上。本篇博客将详细介绍命令的使用方法和示例。本篇博客详细介绍了命令的使用方法和示例。通过命令,我们可以选择性地将特定的提交应用到其他分支上,而不需要合并整个分支。这对于合并单个提交、修复bug和提取特定功能非常有用。 解决 冲突 之后重新 git add xx 将 解决 冲突 的文件再一个一个的添加,然后 git cherry - pic k --continue,提示成功即可,否则继续 git diff 解决 冲突 。在分支A上打开 Git bash,然后 git checkout B 切换到分支B,然后输入 git cherry - pic k xxx (前面查看到的提交a的commit id )输入 git status可以查看当前 冲突 的文件, 输入 git diff,会在代码中生成 冲突 提示,之后根据 冲突 提示开始逐个文件 解决 冲突 git 挑选教程 这个 repo 通过提供一个小任务来简单地让你实现这个 tut 的目标,涵盖了一个叫做的 git 命令。 git cherry - pic k基本上使您能够在 HEAD 所指的当前位置下复制一系列提交。 基本的 git cherry - pic k 命令 $ git cherry - pic k commit1 commit2 commit3 ... commitN (1) 每个提交都引用一个 SHA-1 哈希值。 请注意,在命令中只给出哈希值的前七个字符(即ab8s001 )是合理的。 如果您的 cherry - pic k 命令在复制命令中指定的提交之一时失败(例如,发生 冲突 时),您可以使用以下命令稍后继续/退出/中止下一个目标提交。 git cherry - pic k --continue git cherry - pic k --quit git cherry - pic k --abort 1) git checkout B 2) git cherry - pic k -n [A分支中的commit Id ] 3) git status 查看是哪些文件发生 冲突 (红色的为有 冲突 的文件) 4) 解决 冲突 5) git add 这些文件( git add相当于标记为已 解决 ) 6)接下来可以继续 cherry pic k下一个需要同步的commit,如若不继续,即可在B分支提交同步 转自:https://blog.csdn.net git commit 中的 change - id 为什么要使用 change - id 保证已经提交审核的修订通过审核入库后,被别的分支 cherry - pic k 后再推送至服务器时不会产生新的重复的评审任务。Gerrit 设计了一套方法,即要求每个提交包含唯一的 Change - Id ,这个 Change - Id 因为出现在日志中,当执行 cherry - pic k 时也会保持,Gerrit 一旦发现新的提交包含了已经处理