`

Git合并两个commit

    博客分类:
  • Git
 
阅读更多

一个同事让我把他的repository若干个commit变成一个,我用git rebase -i合并到最后发现剩下只有两个commit的时候,git rebase -i不再起作用,于是我求助了git maillist,果然很快有人给出了答案:

$ git reset --soft HEAD^1   只回退commit,保留change和index

$ git commit -a --amend

$ git push origin --force

 

    git reset --mixed:此为默认方式,不带任何参数的git reset,即这种方式,它回退到某个版本,只保留源码,回退commit和index信息, 即保留的文件为Untracked状态。
    git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级, 即保留文件为Tracked状态。如果还要提交,直接commit即可

    git reset  --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!

    HEAD^ 上一次提交 HEAD^^ 上两次提交

     HEAD~1 上一次提交 HEAD~2 上两次提交

 

git rebase 命令的功能很强大,之前一直用它解决patch冲突。

交互式rebase(git rebase -i)提供了一个简单易用的途径让你在和别人分享提交之前对你的提交进行分割、合并或者重排序。

有时间再研究下。

 

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    git文件存放结构思维导图

    Git合并策略是指在合并两个分支时的默认行为。 Recursive是Git合并策略的默认行为,即递归寻找路径最短的唯一共同祖先节点,然后以其为base。如果有多个base节点,那么继续递归找到一个共同祖先,然后合并得到临时...

    实际开发中 git 冲突解决与合并

    解决冲突的方法非常简单,主要是使用git stash命令进行处理,分成以下几个步骤进行处理: 1、先将本地修改存储起来:使用git stash命令可以将本地的所有修改暂时存储起来。用git stash list可以看到保存的信息,...

    最新的git客户端,其中有两个版本

    4. **合并(Merge)**:将两个或多个分支的更改合并到一起。 5. **拉取(Pull)**:从远程仓库获取最新的变更并合并到本地分支。 6. **推送(Push)**:将本地的变更推送到远程仓库,共享你的工作。 7. **标签(Tag)**:...

    详解git合并冲突解决方法

    首先,当你尝试用 `git merge` 命令合并两个分支时,如果存在冲突,Git会在冲突文件中插入特殊的标记来指示冲突区域。例如: ``` add some lines on master branch add some lines on psr/psr-01 branch 2016年12...

    详解git commit --amend 用法

    3. 运行 `git commit --amend -m "新的提交注释"`,将修复和新增的文件合并为一个提交,并更新提交信息。 适用场景二: 当你要在一个只由自己使用的 feature 分支上工作,并希望保持提交历史的整洁,每次提交都覆盖...

    30 天精通 Git 版本控管

    Git中的合併是指将两个或多个分支合并到一起,例如将feature分支合并到master分支。 知识点18:設定.gitignore 忽略清單 Git中的.gitignore文件是指忽略清單,用于忽略不需要版本控管的文件。 知识点19:修正...

    git压缩包下载git下载

    5. 合并(Merge):将两个分支的代码合并在一起。 6. 克隆(Clone):复制远程仓库到本地,以便进行开发。 7. 拉取(Pull):从远程仓库获取最新的代码并合并到本地。 8. 推送(Push):将本地的更改推送到远程仓库...

    Git分支合并和命令.docx

    ### Git分支合并和命令详解 #### 一、Git分支概念及优势 **Git 分支**是一种非常高效且灵活的功能,允许开发者在不干扰主线代码的情况下进行独立开发和测试。这得益于Git内部对分支的实现机制——实际上每一个分支...

    czbk公开课笔记git 两小时学会Git玩转Github.zip

    在“czbk公开课笔记git 两小时学会Git玩转Github.doc”中,你将了解如何初始化一个新的Git仓库,使用`git init`命令。接着,你将学习如何添加文件到暂存区(Stage),使用`git add`,并提交更改到本地仓库,使用`git...

    git-cheetsheet

    - `git diff <commit_id1> <commit_id2>` 显示两个提交之间的差异。 #### 回退变更 - **命令**: `git revert HEAD; git revert <commit_id>; git checkout <commit_id> <file>` - **说明**: 如果需要回退到某个...

    Git命令详解.docx

    * 合并分支:使用 `git merge` 命令合并两个分支。 * 删除分支:使用 `git branch -d` 命令删除一个分支。 * 推送分支到远端仓库:使用 `git push` 命令推送分支到远端仓库。 ### Git 远端仓库 * 设置一个远端的 ...

    git安装包git-2.34.0-64-bit.rar

    6. **解决冲突**:当两个或更多分支修改了同一部分代码时,Git会提示冲突。用户需要手动编辑冲突文件,解决冲突后提交更改。 7. **远程仓库**:Git可以与像GitHub或GitLab这样的远程服务集成,`git remote add ...

    git和svn的比较

    8. 合并两个分支:使用Git merge命令合并两个分支。 基于Git的团队协同开发 Git可以用于团队协同开发,下面是基于Git的团队协同开发步骤: 1. 克隆远程版本库:使用Git clone命令克隆远程版本库。 2. 本地版本库...

    Git安装包 Git-2.15.1.2-64-bit和Git-2.15.1.2-32-bit以及常用命令行PDF

    这两个安装包包含了完整的Git工具集,允许用户在本地进行版本控制操作,如创建仓库、提交更改、分支管理和合并代码等。 Git的安装过程通常包括以下步骤: 1. 下载适合您操作系统的Git安装包(此处为Git-2.15.1.2-64...

    Git最新版本下载(内含MAC、window两个版本)

    这个压缩包包含了Git针对两种主流操作系统——Mac OS和Windows的最新版本。对于开发者来说,掌握Git的使用至关重要,因为它能够有效地跟踪代码变更,管理项目版本,以及方便团队间的协同工作。 在Mac OS上,Git版本...

    git 2.20 x64

    Git-2.20.1-64-bit.exe 安装包会包含Git命令行工具和Git GUI,这两个组件对于开发者来说都十分实用。 在版本控制中,Git的特色功能还包括: 1. **补丁(Patch)**:通过`git format-patch`和`git am`命令,可以...

    git使用教程

    - **Diff**:显示两次提交之间的差异,例如 `git diff` 或 `git diff commit1 commit2`。 - **Commit**:创建新提交,更新当前分支。`git commit --amend` 可以修改最近一次提交。 - **Checkout**: - 切换分支...

    Git 是一个分布式版本控制系统,用于管理代码版本和协作开发 下面是一个 Git 教程,covering the basics

    Merge(合并):将两个分支合并到一个分支。 Pull(拉取):从远程仓库拉取代码。 Push(推送):将代码推送到远程仓库。 2. 安装 Git Windows:从官方网站下载 Git 安装包,安装后可以在命令行中使用 Git。 macOS...

    git(mac/win) 两种版本.zip

    以下将详细介绍这两个版本以及与它们相关的Git、GitHub和Java知识点。 1. Git:由Linus Torvalds创建,用于Linux内核开发。Git的主要特点包括速度快、数据完整性高、分支管理灵活等。Git-2.15系列是Git的一个稳定...

Global site tag (gtag.js) - Google Analytics