git合并分支上指定的commit

merge 能够胜任平常大部分的合并需求。但也会遇到某些特殊的情况,例如正在开发一个新的功能,线上说有一个紧急的bug要修复。bug修好了但并不像把仍在开发的新功能代码也提交到线上去。这时候也许想要一个只合并指定某些 commit 的功能。

假设分支结构如下:

dd2e86 - 946992 - 9143a9 - a6fd86 - 5a6057 [master]
                                  76cada-62ecb3-b886a0[feature]

再假设 62ecb3 的提交修复了bug,这时候可以用cherry pick 合并单个 commit

具体操作

git checkout master
git cherry-pick 62ecb3

就这么简单。62ecb3 已经应用在 master 上了(作为一个新的commit)。

cherry pick 连续多个commit

cherry pick 虽好,但一次只能合并一个commit。合并多个就要用到 rebase 了。再次假设想要把 76cada 和 62ecb3 合并到 master 上。

git checkout -b newbranch 62ecb3
git rebase —onto master 76cada^

76cada^ 表示从 76cada 的 commit 开始合并(作为新的commit)。这样就完成了 76cada 到 62ecb3 合并到 master。

原文地址:https://www.cnblogs.com/senlinyang/p/8436049.html

时间: 2024-08-01 10:29:06

git合并分支上指定的commit的相关文章

转!!git如何撤销上一次commit(或已push)

原博文地址 : https://www.cnblogs.com/lyy-2016/p/6509707.html git如何撤销上一次commit操作 1.第一种情况:还没有push,只是在本地commit git reset --soft|--mixed|--hard <commit_id> git push develop develop --force (本地分支和远程分支都是 develop) 这里的<commit_id>就是每次commit的SHA-1,可以在log里查看到

git合并分支

现在我们想把develop分支合并到主分支master上,按下面的操作即可: 1.切换到master分支 git checkout master 2.合并develop分支到master分支 git merge develop 3.推送至远程版本库 git push 但是,有些情况,我们只想把develop分支上的某一个commit版本合并到master分支上,怎么办? 下面的方法可以解决: 1.切换至develop分支 git checkout develop 2.查看commit提交记录 g

Git合并分支出现的冲突解决

人生不如意之事十有八九,合并分支往往也不是一帆风顺的. 我们准备新的分支newbranch. [email protected]V-PC MINGW32 /c/gitskill (master)$ git checkout -b newbranchSwitched to a new branch 'newbranch' 修改readme.txt,在最后一行添加: $ cat readme.txtmaster分支内容添加dev分支内容分支合并测试 在分支newbranch上提交: [email p

git合并分支操作

1.创建其他分支 git checkout -b mergedemo 创建文件   vi 123.text 12334 1233 ESC  冒号 wq cat 123.text git add 123.text 追踪下这个文件 git commit -m "增加合并的内容" git push --set-upstream origin mergedemo 修改的内容推送到远程端  因为是新建的·分支 所以 不能单单用 git push git checkout master切换到主分支

git合并分支成功,但是push失败(remote: GitLab: You are not allowed to push code to protected branches on this project.)

紧急修复修改代码之后需要合并分支到master分支并push到线上,但是merge成功,push却失败了,报错如下: ? buzzextractor git:(master) git merge hotfix Updating 4668fce..9527ae9 Fast-forward build_online_images.sh | 2 +- extractor/buzz/lib/utils.py | 2 +- extractor/conf/config.ini.bushu | 2 +- ex

git 合并分支到master

假如我们现在在dev分支上,刚开发完项目,执行了下列命令 git add .git commit -m ‘dev'git push -u origin dev 然后我们要把dev分支的代码合并到master分支上 该如何? 首先切换到master分支上 git checkout master 如果是多人开发的话 需要把远程master上的代码pull下来 git pull origin master 如果是自己一个开发就没有必要了,为了保险期间还是pull 然后我们把dev分支的代码合并到mas

GIT合并分支代码

1..git同文件夹下,右键进入git bash命令行,然后进入要合并的分支(如develop分支合并到release,则进入release目录) git checkout release(切换分支) git pull(拉去最新的代码) 2.查看分支 git branch -a(查看所有分支:本地分支白色,当前分支绿色,远程分支红色) 3.合并分支 git merge develop(因为develop在上一步是白色的,不建议直接合并远程分支) 4.查看状态 git status(这里可以看到是

Git合并分支加redis

项目开发git操作 基本流程 开发前,拉一次远程仓库 工作区进行开发 将开发结果提交到本地版本库 -git status查看没有被处理的事件 拉取远程仓库(每一次要提交远程仓库前必须先拉) 如果出现冲突,线下沟通(协商重新开发冲突文件),要重新3,4步 没有冲突,提交数据到远程仓库 协同开发 1.所有人在一个分支上进行开发---通常开发分支为dev 2.遵循git开发流程:先提交本地版本库,再拉取服务器代码,最后提交代码 提交到本地版本库:git commit -m '提交的注释信息' 拉取远程

Git 合并分支

git merge 用来做分支合并,将其他分支中的内容合并到当前分支中.比如分支结构如下: master / C0 ---- C1 ---- C2 ---- C4 C3 ---- C5 issueFix 当前分支是master $ git checkout master 把issueFix中的内容Merge进来: $ git merge issueFix 如果你想用一个有图形界面的工具来解决这些问题,不妨运行 git mergetool,它会调用一个可视化的合并工具并引导你解决所有冲突: $ g