怎么修改git提交过的内容
Git使用amend选项提供了最后一次commit的反悔。但是对于历史提交呢,就必须使用rebase了。
git rebase -i HEAD~3
表示要修改当前版本的倒数第三次状态。
这个命令出来之后,会出来三行东东:
pick:*******
pick:*******
pick:*******
如果你要修改哪个,就把那行的pick改成edit,然后退出。
这时通过git log你可以发现,git的最后一次提交已经变成你选的那个了,这时再使用:
git commit-amend
来对commit进行修改。
修改完了之后,要回来对不对?
使用git rebase --continue
OK,一切都搞定了。
git 删除历史提交(git push过的内容)
git reset --hard 哈希值
git push -f (强制更新)
文章二:
Git作为一种分布式的版本管理软件,可以帮我们高效的管理代码。我们每次做了改动,都会通过 git commit 把修改提交到本地库上,一般情况下,我们是不会修改每次的提交内容,但是,在某些特殊的情况下,我们不得不修改git 提交的内容,本文通过一个例子,详细地介绍了如何修改git提交过的内容。
工具/原料
- Git
- Linux
方法/步骤
首先,我们可以用“git log”查看本地提交,本文中对最近的两次提交进行修改。


我们可以利用”git rebase -i HEAD^^“命令修改最近的两次提交。当然,命令”git rebase -i“的最后一个参数视具体情况而定,如修改最近的三次提交,则应该改为HEAD^^^,此参数也可以用commid ID值代替。

进入编辑状态。我们将需要修改的提交前对应的"Pick"命令改为"edit"命令(简写为"e"),保存退出,便可以修改相应提交的内容了。


对需要修改的地方进行修改。然后保存退出。


需要注意的是,我们保存的文件必须通过”git add“命令进行添加。然后利用”git rebase --continue“命令继续。

修改commit时的log信息并保存退出。

继续对第二次提交进行修改。由于第二次提交和第一次提交有冲突,我们必须编辑冲突文件并解决冲突。然后保存退出。


然后通过”git add“命令和”git rebase --continue“命令继续。修改第二次提交的log信息,保存退出。


最后,就可以看到保存成功的信息了。
如果我们在执行”git rebase“命令时,需要退出,则可以运行”git rebase --abort“命令,退出rebase过程。
怎么修改git提交过的内容的更多相关文章
- git push撤销、git commit 撤销、git add撤销、修改git提交信息
原文地址:http://leisure.wang/?p=472 虽然自觉是一个Git工具的老手了,但是平时犯了一点错误,就发现有点捉襟见肘了.就好像今天我把一些代码玩坏了,想撤回到前几个版本去(此时已 ...
- git<git rebase 修改以前提交过的内容>
git rebase 使用总结: 使用git rebase 修改以前已经提交的内容 比如要修改之前的commit的 hashcode为:187f869c9d54c9297d6b0b1b4ff47d ...
- 修改git 提交的用户名和用户Email命令
首页先查看全局配置:git config --list git config --local --list 法一:使用命令修改git的用户名和提交的邮箱 )修改全局 如果你要修改当前全局的用户名和邮箱 ...
- 修改git提交的用户名和密码
目的:每个项目自定义Git提交的用户名和邮箱 1.在本地找到某个项目所在的地址 2.找到config文件 3.增加如下配置 4. ok,这样每个项目都可以定义提交者姓名和邮箱了
- idea中修改git提交代码的用户名
1.原因:刚进入这家公司,给同事交接完,直接使用他的电脑,每次提交代码都显示他的用户名,本以为是电脑系统名称呢,可是修改了之后没有效果 2.解决方案: 打开C盘里的 .gitconfig文件 看下gi ...
- Git 提交修改内容和查看被修改的内容
我们将仓库里的readme.txt文件修改一下,改成如下内容: Git is a distributed version control systemGit is free software. 运行g ...
- git rebase修改历史提交内容
目录 简述 解决过程 简述 git提交历史中有一次提交的内容是有问题,因为每隔一段时间就要发一次版本,所以必须修改这次提交的内容,以便其不影响已经发布的版本. 大概是这样子的 A --- B ---- ...
- git学习------>如何修改git已提交的记录中的Author和Email?
一.背景 最近搭建好GitLab后,准备陆陆续续的将之前在SVN仓库中保存的代码迁移到GitLab上,昨天顺利将三个Android组件的代码迁移到GitLab后,其他同事发现迁移是成功了,但是pull ...
- git把dev部分提交过的内容合并到master
git 把dev部分提交过的内容合并到master $ git reflog a6de5cc HEAD@{}: checkout: moving from wf_dev to master 303aa ...
随机推荐
- BizTalk动手实验(十一)自定义开发管道组件
1 课程简介 通过本课程熟悉自定义开始管道组件的流程.各组件接口的功能作用以及自定义管道. 本场景为开发一个消息ZIP压缩的发送管道组件. 2 准备工作 1. 熟悉管道组件各阶段组成 2. 下载Ion ...
- String的hashcode(java)
hashCode就是我们所说的散列码,使用hashCode算法可以帮助我们进行高效率的查找,例如HashMap,说hashCode之前,先来看看Object类. Java程序中所有类的直接或间接父类, ...
- 中介者模式(Mediator)
GOF:用一个中介对象来封装一系列的对象交互.中介者使对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 类图:
- venus java高并发框架
http://www.iteye.com/topic/1118484 因为有 netty.mima等远程框架.包括spring jboss等remoting框架 和阿里的dubbo相比, 没有亮点.. ...
- sax解析原理与案例
package itcast.sax; import java.io.IOException; import javax.xml.parsers.ParserConfigurationExceptio ...
- Linux搭建QT环境笔记
*** [../../../../lib/libQtWebKit.so.4.7.4] Error 1make[1]: Leaving directory `/home/cloverbox/qt-eve ...
- java 求 两个数的百分比% (转)
int num1 = 7; int num2 = 9; // 创建一个数值格式化对象 NumberFormat numberFormat = NumberFormat.getInstance(); / ...
- jQuery DOM 与 原生DOM 互相转换的方法
jQuery 转 js $('#element').get(0); // 等于 document.getElementById('element'); // 输出 <p id="ele ...
- web页面隐藏鼠标
Java web项目需求需要做一个在页面中,鼠标隐藏,来浏览页面,让客户不能点金页面 重要代码: $('*').css('cursor','none!important'); 示例: <styl ...
- html5新增语义标签
1.header <header> 标签定义文档的页眉(介绍信息). 2.nav <nav> 标签定义导航链接的部分. 3.article <article> 标签 ...
步骤阅读