如何把已经提交的git commit 指定分支,从一个分支放到另一个分支

实际问题:
在本地 master 分支上做了一个commit ( f8bbfd88b3705d77a
) , 如何把它放到 本地 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
号码,位于:
commit f8bbfd88b3705d77a
Author: Siwei Shen &siwei.&
Sat Dec 10 00:09:44
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 15a2b6c61927e5aeddafba939a90b
就跟普通的冲突一样,手工解决:
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号码&
浏览 123814
浏览: 421647 次
来自: 北京
浏览量:13343
请问有办法在对两个分支,同时都拥有的文件,进行修改后,再同时c ...
如果cherry-pick某分支a某一次提交之后过一段时间对分 ...
jkbjxy 写道楼主了解Lily吗?相比SolrCloud和 ...
看起来solr还是全面稳定些
这个是12年的版本。。。bluky999 写道ES 现在快出1 ...git cherry-pick. 如何把已经提交的commit, 从一个分支放到另一个分支
时间: 23:59:09
&&&& 阅读:176
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&实际问题:&& 在本地 master 分支上做了一个commit (&f8bbfd88b3705d77a&) , 如何把它放到 本地 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&号码,位于:
f8bbfd88b3705d77a
Author: Siwei Shen &&
Date:&& Sat Dec 10 00:09:44
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 15a2b6c61927e5aeddafba939a90b
就跟普通的冲突一样,手工解决:2.1 $ git status&&& # 看哪些文件出现冲突
both modified:&&&&& app/models/user.rb
2.2 $ vim app/models/user.rb& # 手动解决它。&2.3 $ git add app/models/user.rb2.4 git commit -c &新的commit号码&
标签:&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&国之画&&&& &&&&chrome插件
版权所有 京ICP备号-2
迷上了代码!1918人阅读
转载 git(2)
上周自己一不小心将branch建在了一个未merge的分支上,现在想把移出来提交,查到了下面的方法
来着:/blog/1300713
实际问题:&
& 在本地 master 分支上做了一个commit (&f8bbfd88b3705d77a&) , 如何把它放到 本地 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&f8bbfd88b3705d77a&
Author: Siwei Shen &siwei.&
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 15a2b6c61927e5aeddafba939a90b
就跟普通的冲突一样,手工解决:
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号码&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:539946次
积分:7226
积分:7226
排名:第3224名
原创:152篇
转载:104篇
评论:243条
(4)(3)(3)(1)(3)(4)(3)(3)(2)(1)(1)(2)(2)(5)(5)(6)(10)(4)(1)(4)(12)(2)(5)(7)(15)(4)(10)(15)(18)(7)(11)(19)(25)(35)(5)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'28563人阅读
经常被问到如何从一个分支合并特定的commits到另一个分支。有时候你需要这样做,只合并你需要的那些commits,不需要的commits就不合并进去了。
合并某个分支上的单个commit
首先,用git log或GitX工具查看一下你想选择哪些commits进行合并,例如:
dd2e86 - 43a9 - a6fd86 - 5a6057 [master]
&&&&&&&&&& \
&&&&&&&&&&& 76cada - 62ecb3 - b886a0 [feature]
比如,feature 分支上的commit&<span style="color:#ecb3&非常重要,它含有一个bug的修改,或其他人想访问的内容。无论什么原因,你现在只需要将<span style="color:#ecb3&合并到master,而不合并feature上的其他commits,所以我们用git
cherry-pick命令来做:
git checkout master
git cherry-pick 62ecb3
这样就好啦。现在62ecb3&就被合并到master分支,并在master中添加了commit(作为一个新的commit)。cherry-pick&和merge比较类&#20284;,如果git不能合并代码改动(比如遇到合并冲突),git需要你自己来解决冲突并手动添加commit。
合并某个分支上的一系列commits
在一些特性情况下,合并单个commit并不够,你需要合并一系列相连的commits。这种情况下就不要选择cherry-pick了,rebase&更适合。还以上例为例,假设你需要合并feature分支的commit<span style="color:#cada&~<span style="color:#ecb3&到master分支。
首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:
git checkout -bnewbranch 62ecb3
然后,rebase这个新分支的commit到master(--ontomaster)。<span style="color:#cada^&指明你想从哪个特定的commit开始。
git rebase --ontomaster 76cada^得到的结果就是feature分支的commit 76cada&~<span style="color:#ecb3&都被合并到了master分支。
[英文原文]&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:437740次
积分:4462
积分:4462
排名:第6980名
原创:125篇
评论:91条
联系专家帮助:(1)机器学习,NLP,数据挖掘,数据分析(2)软件开发、优化(3)企业培训,技术顾问(4)数据科学职业发展咨询。微信:crazygoodluck,QQ:,微信公众号:自动话(说话的话)
(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(3)(4)(3)(3)(3)(3)(4)(3)(3)(3)(1)(5)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(3)(2)(1)(3)(3)(2)(1)(10)(8)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'git cherry-pick用于把另一个本地分支的commit修改应用到当前分支。
遇见这个问题起初不知道该如何解决,哎,看了下,还有这个命令,还是上一个博主的文章:
git checkout 当前分支
git cherry-pick &分支号 & //这个是从原来的分支 git log 看到的
如果没有冲突 &就可以正常的 git push到远端了
如果遇到冲突,我也不太清楚,不过可以参考链接博主的说法,我遇到了,我再修改我的
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:629次
排名:千里之外
原创:14篇
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'}

我要回帖

更多关于 git 从commit创建分支 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信