【Git】Git如何合并某一次commit的内容到指定分支

一、我是在什么场景下会用到该Git操作

  当某同事,将开发分支dev2合并到开发分支dev1时(两个不同的功能,不能合并),其他同事不知情的情况下,继续在dev1上开发并提交了代码。

 后面发现了该合并,需要回退到合并前的状态,同时,合并后的提交也需要保留。那么就需要合并后面commit的内容到dev1分支

二、如何进行Git操作

使用如下命令就可以了

git cherry-pick commit_id

*通过 git reflog可以查看历史提交的commit_id

比如:dev1&dev2是合并的地方,需要合并commit3和commit4

commit1->dev1&dev2->commit3->commit4 (dev1)

执行有冲突解决冲突:git cherry-pick commit3
git cherry-pick commit4

原文地址:https://www.cnblogs.com/756623607-zhang/p/11286984.html

时间: 2024-11-05 22:44:43

【Git】Git如何合并某一次commit的内容到指定分支的相关文章

git中如何修改上一次commit的内容

如果刚刚git commit提交了,但是想要修改commit的内容,如何修改呢? 如果只是在本地提交了,还没有push到远端,可以按照下面的方法操作: 1.用 git commit --amend 命令进入 vim 编辑器,界面如下所示: 然后你会发现怎么输入都没反应,这是因为vim处在不可编辑状态. 2.按下字母键c,此时进入编辑状态,可以修改提交的信息了,如下图所示: 修改好注释之后,又发现退出不了了. 3.此时,按Esc退出编辑状态,然后连续按两次Z,就退出vim编辑器了,回到了命令行状态

Git git rebase 使用

原文:http://gitbook.liuhui998.com/4_2.html 一.基本 git rebase用于把一个分支的修改合并到当前分支. 假设你现在基于远程分支"origin",创建一个叫"mywork"的分支. $ git checkout -b mywork origin 假设远程分支"origin"已经有了2个提交,如图 现在我们在这个分支做一些修改,然后生成两个提交(commit). $ vi file.txt $ git c

git<git常用命令>

1,初始化仓库: git init --此命令会在当前目录下新建一个Git仓库.新建了一个 .git的隐藏目录,仓库的所有数据都放在这个目录里.目前还是空的. 2,跟踪,暂存文件: git add --执行git add 命令将源文件的修改加入git仓库的暂存区,待执行git commit时,正式将修改存入仓库.或新建一个文件后 git add 文件名  跟踪这个文件 3,提交: git commit --git commit 用于将暂存的修改提交入仓库 git commit -a git co

git<git rebase冲突解决>

git rebase 使用总结: 使用git rebase 修改以前已经提交的内容 比如要修改之前的commit的 hashcode为:187f869c9d54c9297d6b0b1b4ff47d2ec781a55e 1,git rebase 187f869c9d54c9297d6b0b1b4ff47d2ec781a55e^ --interactive --退回到要修改的commit的前一个点上,执行后,git会调用默认的vi编辑器显示commit到最新commit的所有记录,把我们要修改的那一

git两种合并方法 比较merge和rebase

18:01 2015/11/18git两种合并方法 比较merge和rebase其实很简单,就是合并后每个commit提交的id记录的顺序而已注意:重要的是如果公司用了grrit,grrit不允许用merge,所以好像都是用rebase却别讲解,比如:在服务器上的develop分支有多人在开发,你们同时clone或pull下来最新代码,但是开发进度不一样,你在开发一个任务的时候其他人提交了编号为1,2的commit和push,你现在开发完了也要提交,你的提交编号是3,4(注意:编号不代表顺序现实

Git -- 创建与合并分支

在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支. 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点: 每次提交,master分支都会向前移动一步,这样,随着你不断提交,m

git创建与合并分支

创建与合并分支 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分 支,即master分支.HEAD严格来说不是指向提交,而是指向master,master才是指向提交的,所以,HEAD指向的就是当前分支. 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点: 每次提交,master分支都会向前移动一步,这样,

GIT 如何在不提交Commit的情况下切换分支

最近遇到一个问题,事情是这样子的,刚刚接到客户说他的项目有问题,于是就打开本地的源码查看经过排查确定了问题,于是就开始进行修正工作 将问题修复好准备提交到git的时候发现当前的分支是不对的,但问题是我已经在当前分支了作了大量修改,如果要切换分支则必须先要将修改过的文件先提交 那么现在问题来了:如何在不提交commit的情况下来切换分支呢? 最后通过查看Pro Git文档了解到Git中有一个stash功能可以实现 6.3 储藏(Stashing) 来源: <http://git.oschina.n

【Git版本控制】Git中merge合并分支只对当前分支产生影响,被合并的分支不受影响

git checkout master git merge dev dev分支上commit的内容会合并到master分支,但dev不受影响. 正确的基于分支开发流程: 1.拉取远程master分支的最新版本到本地:git pull orgin master 2.由master分支复制一新的分支,并切换到新分支上做开发:git checkout -b dev 3.当dev分支上有提交时,切换到master分支然后将dev分支与当前分支合并(合并后master分支的内容会变,dev分支不变): g