网上建立网站,众筹平台网站建设,他达拉非副作用,烟台seo外包功能#xff1a;将某个分支的某次提交应用到当前分支
应用场景#xff1a;
在合并分支时#xff0c;是将源分支的所有内容都合并到目标分支上#xff0c;有的时候我们可能只需要合并源分支的某次或某几次的提交#xff0c;这个时候我们就需要使用到git的cherry-pick操作…功能将某个分支的某次提交应用到当前分支
应用场景
在合并分支时是将源分支的所有内容都合并到目标分支上有的时候我们可能只需要合并源分支的某次或某几次的提交这个时候我们就需要使用到git的cherry-pick操作了。
在develop分支上开发出功能模块ABC这时提出先上线功能模块AB。
怎么办一个办法就是重新建一个分支然后再把功能模块C回退留下功能模块AB。这种做法不是不行但是有更好的办法那就是git所提供的cherry-pick功能。
cherry-pick类似于一个定制化的merge它可以把其它分支上的commit一个个摘下来合并到当前分支。
举例
比如我现在有个文件a.c我在develop分支完成了三个功能模块feature Afeature Bfeature C。如下图 现在只要feature Afeature B我们现在用cherry-pick命令直接把feature Afeature B的提交合并到master分支里如下操作 可以看到功能模块feature Afeature B已经被合并到master分支里。请注意合并到master分支里的提交哈希值发生了改变与原来的不同。
可以看出cherry-pick命令使用方法很简单即
git cherry-pick commitID刚刚是一个个提交cherry-pick到master分支但如果有100个commit要合并到master分支呢总不能这样一个个操作吧git一样帮你想到了它提供了一个区间操作方法。具体来讲是这样的
git cherry-pick commit1..commit100但是要注意这是一个左开右闭的操作也就是说commit1不会被合并到master分支而commit100则会。这样的话上面的需求可以如下操作来实现 注意上面讲到cherry-pick命令每拣选一个commit就会提交一次生成一个新的commit id。 如果我们想让每个commit 拣选后暂缓提交等到所有commit都拣选完成后自己手动commit应该怎么办呢答案是用-n 选项
命令
git checkout master // 先切换分支
git cherry-pick featureA的commitID // 合并featureA功能
git cherry-pick featureB的commitID // 合并featureB功能注git cherry-pick 分支名 合并该分支上最新的一次提交记录 参考 git 一个可以提高开发效率的命令cherry-pick详解