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 <[email protected]>

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号码>

时间: 2024-10-14 04:07:14

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

git 删除错误提交的commit

转自:http://www.douban.com/note/189603387/ 正好遇到进阶问题.试了一下,是我要的,直接把服务器主版本还原了.不过这样也挺危险的,自己用用还可以. 方法: git reset --hard <commit_id> git push origin HEAD --force 其他: 根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:    git reset –mixed:此为默认方式,不带任何参数的git r

使用Git命令窗口将本地工程提交至远程GitHub

目标: 1.解决的问题是如何通过Git命令窗口将本地工程提交至GitHub. 2.方便园友的同时也方便自己以后解决此类问题. 步骤: 1.首先登陆GitHub网站https://github.com/ 2.新建Repository 3.新建TicketBrushSystem的Repository,其中红框的几处可以根据实际情况自行填写. 成功后会出现如下界面 4.将TicketBrushSystem克隆到本地 4.1.使用Git Bash将工作目录切换到本地的工程文件目录,如,笔者的项目工程位于

git如何删除本地所有未提交的更改

位于分支 develop 您的分支与上游分支 'origin/develop' 一致. 未跟踪的文件: (使用 "git add <file>..." 以包含要提交的内容) :all :crm_overview :fm_overview :oa_overview :pm_overview dashboard#index git checkout . && git clean -xdf git如何删除本地所有未提交的更改,布布扣,bubuko.com

如何轻松使用git,不用命令行,提交代码so easy。

以下观点纯属个人观点,请轻喷: 前言: 在Android开发中,首先要用到的就是版本控制工具,多人配合开发.(如果您是独立开发的话,请忽略本文).使用git的话,随时随地都可以提交代码,是不是很爽.但如果您是用的命令行提交代码,那确实很痛苦.这篇文章就教大家如何使用git,方便快捷的进行版本控制.废话不多说,直接上步骤. 步骤1:安装git 首先先安装msysgit msysgit 64/32位下载地址:http://download.csdn.net/download/laochangzhi/

Git 学习笔记--删除错误提交的commit

如果不小心把错误的commit给commit了,可以对其进行撤销 1.使用git log查看commit日志,找到错误提交前一版本commit的哈希值; 2.使用git reset --hard commit_id; 3.git push origin HEAD --force(git push --force) 将修改提交到git服务器

GIT 如何删除某个本地的提交

一.rm后要commit一下才会生效,但这样只是让文件不再出现在今后的版本中,文件副本仍然会在.git/下(这样git才能让误删的文件恢复). 要彻底消灭文件副本,那就要让文件彻底从历史中消失,分两种情况: 1.如果你的文件添加记录是最近1次,而且没有别的更改,可以简单使用reset --hard commit_id来彻底回溯,然后gc一下再上传就没问题了. 2.如果是在你N次提交以内的某次,而且同时还有别的重要提交,那最好用rebase合并一下这几次提交记录(包括rm的commit),然后再g

git log 查看指定文件的提交记录

使用git log除了可以看整个仓库的提交记录外,还可以指定某个文件的提交记录. 1. 查看指定文件的历史提交记录 命令: git log -- <file> 说明:只需要指定文件名称. 示例: 2. 查看每次提交的内容差异 命令: git log -p -2 -- <file> 参数:-p 表示每次提交的内容差异,-2 则表示显示最近的两次更新. 说明:该选项除了显示基本信息之外,还在附带了每次 commit 的变化. 示例: 3. 单词层面上的对比 命令: git log --

如何解决更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外 提示:一个版本库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更 提示:(如 &#39;git pull ...&#39;)。

不要通过网页提交,通过网页提交一次,然后在终端再次push的时候,会认为网上代码仓库已经被其他地方提交过一次代码,此时会拒绝终端push 这个时候只能是pull,然后才能再次在终端提交. 也就是说,避免这种问题的注意事项是:不要通过网页向仓库提交文件. 解决办法: 1.强行上传  git push -u origin +master 2. 尽量先同步github上的代码到本地,在上面更改之后再上传 如何解决更新被拒绝,因为远程版本库包含您本地尚不存在的提交.这通常是因为另外 提示:一个版本库已向

痞子衡嵌入式:第一本Git命令教程(5)- 提交(commit/format-patch/am)

今天是Git系列课程第五课,上一课我们做了Git本地提交前的准备工作,今天痞子衡要讲的是Git本地提交操作. 当我们在仓库工作区下完成了文件增删改操作之后,并且使用git add将文件改动记录在暂存区之后,便可以开始将其提交到Git本地仓库. 1.本地文件改动提交git commit Git空间本地的改动完成之后可以直接提交,有如下三种提交命令选项: 1.1将暂存区内容提交git commit -m ["description"] 暂存区里目前只有app/app.c文件,我们先将其提交