`
sg552
  • 浏览: 620620 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
47437293-94b9-3b04-9152-8971c7580049
白手起家学习使用Flex
浏览量:18716
社区版块
存档分类
最新评论

git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支

阅读更多

实际问题:
  在本地 master 分支上做了一个commit ( 38361a68138140827b31b72f8bbfd88b3705d77a ) , 如何把它放到 本地 old_cc 分支上?

办法之一: 使用 cherry-pick.  根据git 文档:

Apply the changes introduced by some existing commits

就是对已经存在的commit 进行apply (可以理解为再次提交)

简单用法:

git cherry-pick <commit id>


例如:
$ git checkout old_cc
$ git cherry-pick 38361a68     # 这个 38361a68 号码,位于:

 
$ git log
commit 38361a68138140827b31b72f8bbfd88b3705d77a
Author: Siwei Shen <siwei.shen@focusbeijing.com>
Date:   Sat Dec 10 00:09:44 2011 +0800


1. 如果顺利,就会正常提交。结果:

Finished one cherry-pick.
# On branch old_cc
# Your branch is ahead of 'origin/old_cc' by 3 commits.


2. 如果在cherry-pick 的过程中出现了冲突

Automatic cherry-pick failed.  After resolving the conflicts,
mark the corrected paths with 'git add <paths>' or 'git rm <paths>'
and commit the result with:

        git commit -c 15a2b6c61927e5aed6718de89ad9dafba939a90b


就跟普通的冲突一样,手工解决:
2.1 $ git status    # 看哪些文件出现冲突

both modified:      app/models/user.rb


2.2 $ vim app/models/user.rb  # 手动解决它。
2.3 $ git add app/models/user.rb
2.4 git commit -c <新的commit号码>

5
1
分享到:
评论
4 楼 softor 2017-12-21  
palytoxin 写道
如果cherry-pick某分支a某一次提交之后

过一段时间对分支a执行merge操作,相同的两次提交会产生什么效果?

我有类似使用经历,由于有 commit id 标识,所以合并时不会有冲突。
3 楼 softor 2017-10-25  
bit6211 写道
请问有办法在对两个分支,同时都拥有的文件,进行修改后,再同时commit到这两个分支吗?比如master分支和branch1分支,都拥有文件test.cpp,在master或者branch1分支下对test.cpp进行后,能否把修改的test.cpp同时提交到master分支和branch1分支?
如果方便,请帮忙解答,谢谢。

哪个分支需要就 pick 到那个分支即可。
2 楼 bit6211 2015-02-14  
请问有办法在对两个分支,同时都拥有的文件,进行修改后,再同时commit到这两个分支吗?比如master分支和branch1分支,都拥有文件test.cpp,在master或者branch1分支下对test.cpp进行后,能否把修改的test.cpp同时提交到master分支和branch1分支?
如果方便,请帮忙解答,谢谢。
1 楼 palytoxin 2014-07-04  
如果cherry-pick某分支a某一次提交之后

过一段时间对分支a执行merge操作,相同的两次提交会产生什么效果?

相关推荐

    git 一个可以提高开发效率的命令:cherry-pick详解

    Git的`cherry-pick`命令是开发人员的利器,特别是在需要从一个分支选择特定的改动并应用到另一个分支时。这个命令允许你挑选出一个或多个commit,并将其合并到当前工作分支,而不必合并整个分支的历史记录。下面将...

    Git-2.24.0.2-64-bit.zip

    在使用Git时,开发者会接触到一系列命令,如`git init`用来初始化一个新的Git仓库,`git clone`用于复制远程仓库,`git add`用于将更改添加到暂存区,`git commit`用于保存暂存区的更改到本地仓库,`git push`则用于...

    git cherry-pick 简单使用md,学习代码

    在 Git 的众多功能中,`cherry-pick` 是一个非常有用的命令,它允许我们将一个或多个提交从一个分支应用到另一个分支,这对于在不同分支间复用特定修复或功能非常有用。本篇将详细介绍 `git cherry-pick` 的基本用法...

    Git-2.34.1-64-bit.exe V2022

    1. 分布式:Git的每个克隆都是一个完整的代码库,包含所有历史记录和分支。这意味着开发者可以在本地进行所有操作,无需连接到中央服务器,提高了工作效率。 2. 快速:Git设计时注重性能,能够处理大型项目中的大量...

    Git-2.37.0-64位windows安装包

    - ** cherry-pick**:将一个分支的特定提交应用到另一个分支。 - **rebase**:平滑分支历史,将本地提交重新基于最新的上游分支。 6. **Git命令行技巧**: - `git status`查看工作区和暂存区的状态。 - `git ...

    git-2.41.0.tar.gz

    除了基本操作,Git还支持更高级的特性,例如交互式重置(`git reset --interactive`)、 cherry-pick(选择特定提交应用到其他分支)、rerere(用于解决冲突的自动记录和重用)等。了解并熟练掌握这些特性可以极大地...

    Git-2.28.0-64-bit git安装包windos64位官方下载

    3. **Cherry-pick**:`git cherry-pick`可以将某个特定的提交应用到其他分支,用于共享或复制功能。 4. **Submodule**:Git的子模块功能允许你在项目中嵌入其他Git仓库,便于管理依赖的项目。 以上就是关于Git-...

    Git-2.27.0-64-bit_2.exe.zip

    Git是当今最流行的分布式版本控制系统,它被广泛用于软件开发,尤其是开源项目。...随着熟练程度的提高,开发者还可以掌握更高级的技巧,如`git rebase`、`git cherry-pick`和`git stash`等,以提升工作效率。

    git客户端Git-2.42.0.2-64.bit.exe

    在开发过程中,Git还提供了诸如`git rebase`(平滑分支历史)、`git stash`(暂存未提交的更改)和`git cherry-pick`(选取特定提交应用到其他分支)等高级功能,以满足各种复杂的版本控制需求。 总之,Git-2.42....

    git-2.28.0.tar.gz及依赖

    在实际开发中,理解并熟练运用这些基础命令,以及高级特性如分支、合并、重置、 cherry-pick等,将极大地提升团队协作效率。 总之,Git 2.28.0在CentOS 7上的安装可以通过离线或在线方式完成,无论哪种方法,都需要...

    Git-2.31.1-64-bit.rar

    除了基本的命令,Git还提供了许多高级功能,如交互式暂存(`git add -i`)、 stash(用于暂存未完成的更改)、rebase(平滑地合并分支历史)和cherry-pick(从另一个分支挑选特定的提交应用到当前分支)等。...

    Git-2.17.1.2-64-bit

    除了基本命令,Git还提供了许多高级特性,如 stash(暂存未提交的更改)、rebase(平滑分支历史)、cherry-pick(选择性应用其他分支的提交)以及tag(标记特定版本)。这些工具帮助开发者更好地管理代码版本,尤其...

    Git-2.14.1-win-64-bit.rar

    - **cherry-pick**:将某个提交应用到另一个分支。 - **reset**:回退到某个提交,可以改变当前分支的 HEAD 指向。 - **merge --no-ff**:不使用快速合并,保留合并提交的历史记录。 5. **在Windows上的Git**: ...

    git 视频教程

    git视频教程.8.1.Git 命令 - git cherry-pick.mp4 git视频教程.8.2.Git 命令 - git rebase.mp4 git视频教程.8.3.Git 命令 - git rebase.mp4 git视频教程.8.4.Git 命令 - git revert.mp4 git视频教程.9.Git 命令 - ...

    Git-2.28.0-64-bit.rar

    1. 分布式:Git的每个克隆都是一个完整的仓库,包含所有历史版本,这使得离线工作和快速本地分支切换成为可能。 2. 强大的分支和合并:Git的分支模型鼓励频繁地创建和合并分支,简化了并行开发和代码审查过程。 3. ...

    Git-2.25.1-64-bit.exe.7z

    在日常开发中,Git的主要操作包括克隆(clone)仓库、拉取(pull)或推送(push)代码、提交(commit)更改、分支(branch)管理和合并(merge)。熟练掌握这些操作对于任何使用Git的开发者来说都是至关重要的。此外...

    1.Git-2.24.0.2-64-bit.rar

    此外,Git还支持许多高级特性,如交互式暂存(`git add -i`)、rerere(解决冲突的重用已记录的决议)、cherry-pick(应用特定提交到另一个分支)等。Git的工作流程通常与敏捷开发方法论相结合,例如,开发者在自己...

    Git官方最新版下载 Git-2.18.0-64-bit 64位Windows版本

    - `git cherry-pick`:从一个分支挑选特定的提交应用到另一个分支。 - `git blame`:查看每一行代码是谁在何时修改的。 6. Git与GitHub、GitLab等平台的结合: - GitHub、GitLab等提供了基于Git的代码托管服务,...

    Git-2.31.1-64-bit.zip

    cherry-pick,用于从一个分支挑选特定的提交应用到另一个分支;以及revert,用于撤销特定的提交。 安装"Git-2.31.1-64-bit.exe"后,用户可以通过图形用户界面(如GitHub Desktop)或命令行工具进行操作。命令行工具...

    Git-2.19.2-64-bit.exe.7z

    此外,Git还提供了许多高级功能,如重置(Reset)、检出(Checkout)、 cherry-pick、rebase等,用于解决复杂的代码冲突和历史调整。 在CSDN等平台上分享Git的安装包,可以帮助那些网络条件不佳或者找不到官方下载...

Global site tag (gtag.js) - Google Analytics