git cherry pick

原创 2015年11月20日 13:23:05






本地端历史记录的状态如下图显示。仅把在其他分支执行的「添加commit的讲解」的修改导入到master分支。

数据库的历史记录

把修改移动到master分支后,用cherry-pick 取出「添加commit的讲解」提交,然后将其添加到master。(文档里的提交"99daed2"和下载到数据库里的提交有可能不相同。在下载的数据库里执行git log,确认是正确的提交之后再使用。)

$ git checkout master
Switched to branch 'master'
$ git cherry-pick 99daed2
error: could not apply 99daed2... commit
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
hint: and commit the result with 'git commit'

如果发生冲突,就打开sample.txt,修改冲突的部分之后再提交。

$ git add sample.txt
$ git commit




git merge是用来合并两个分支的
# 将b分支合并到当前分支
git merge b

git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我 们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,这样会导致稳定版本混乱,但是又想增加一个v3.0 中的功能到v2.0中,这里就可以使用cherry-pick了。

# 先在v3.0中查看要合并的commit的commit id
git log
# 假设是 commit f79b0b1ffe445cab6e531260743fa4e08fb4048b

# 切到v2.0中
git check v2.0

# 合并commit
git cherry-pick f79b0b1ffe445cab6e531260743fa4e08fb4048b

git rebase有点类似git merge,但是两者又有不同,打个比方,你有两个抽屉A和B,里面都装了衣服,现在想把B中的衣服放到A中,git merge是那种横冲直撞型的,拿起B就倒入A里面,如果满了(冲突)再一并整理;而git rebase就很持家了,它会一件一件的从B往A中加,会根据一开始放入的时间顺序的来加,如果满了你可以处理这一件,你可以继续加,或者跳过这一件,又 或者不加了,把A还原。所以merge适合那种比较琐碎的,简单的合并,系统级的合并还是用rebase吧

专业的区别请移步到这里合并和衍合

# 合并b
git rebase b

# 处理完冲突继续合并
git rebase –continue

# 跳过
git rebase –skip

# 取消合并
git rebase –abort

git cherry-pick 使用指南

git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。例如,假设我们有个稳定版本的分支,叫v2.0,另外还有个开发版本的分支v3.0,我们不能直接把两个分支合并,...

Git cherry-pick后再merge出现一个“奇怪”的现象

背景描述:有的时候在基于一个master branch拉出一个独立feature分支做开发时,两条分支都在并行开发,如果master分支增加了某些功能,解决了某些关键bug,而独立feature分支不...

一个可以提高开发效率的 Git 命令-- Cherry-Pick

在实际的项目开发中(使用Git版本控制),在所难免会遇到没有切换分支开发、需要在另一个分支修改bug然后合并到当前分支的情况。之前遇到这种第一反应就是将分支合并过去来解决问题。如果你那些提交当中也穿插...

git入门-----其它的常用命令(config、cherry-pick)

1、git config (整理的网上的自己还没有验证)      git config 用于配置git 对应的配置文件有三个位置,对应于不同的覆盖。      1)、/etc/gitco...

Git cherry-pick的使用

这几天在帮朋友做一个项目,没时间写博客,今天抽时间继续。今天主要讲解一个高级的语法点 cherry-pick。...

git cherry-pick简介

本文编辑整理自: http://sg552.iteye.com/blog/1300713 http://web.mit.edu/bitbucket/git-doc/git-cherry-pick.tx...
  • hudashi
  • hudashi
  • 2012年06月16日 19:34
  • 106667

git(十四)-git cherry-pick

cherry-pick:现在有哦2个分支和dev和master,我们在dev下边进行了2此提交,我们这个时候发现这个2个提交不应该发生在dev分支,应该在master分支进行,于是我们把dev当前修改...

图解用intellij idea merge git conflict cherry pick 合并git冲突

如何用sourcetree intellij idea 合并 merge git 冲突 conflict
  • collonn
  • collonn
  • 2016年10月28日 20:11
  • 9122

Git Cherry-pick/Git Merge/Git Rebase

Git笔记(三)——[cherry-pick, merge, rebase] 8月 10日 2014 书接上回,直入主题!这篇继续实践剩下的几个命令。 现在的SourceTree状态如下: ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:git cherry pick
举报原因:
原因补充:

(最多只允许输入30个字)