Git修改已经被覆盖的提交
来源:互联网 发布:剑灵灵女捏脸数据图表 编辑:程序博客网 时间:2024/05/16 01:48
本文摘选自文章:【Jitwxs】Git教程 或【CSDN】Git教程
如果你不想看详细的描述,直接看步骤即可:
1.git rebase -i HEAD~n
,将要修改的提交状态改为edit
2.修改文件
3.git add
4.git commit --amend
5.git rebase --continue
假设我们目录下有三个文件,分别是digit.dat
、letter.dat
和symbol.dat
,digit.dat
中存放着数字,letter.dat
中存放着字母,symbol.dat
中存放着符号。
我们先提交digit.dat,然后提交letter.dat,最后提交symbol.dat:
此时我们想起来,letter.dat
中仅仅存放了小写字母,大写字母被遗忘了,我们要把大写字母补充进去。这时候有两种解决方法:
修改letter.dat内容,并发起一次新提交
不发起新提交,对之前的那次提交做修改
我们不讨论发起新提交的情况,仅仅讨论如何对那次提交做修改。你也许会说,这很简单啊,直接使用命令reset HEAD^
或者reset 8cc5dc
不就好了吗?
不错,这没有问题,但是这样的话我们对symbol.dat
的那次提交也被撤回了,这显然是一个笨方法,特别是当你要修改的那次提交被覆盖的很深的情况下。
有没有在不影响其他的提交的情况下,对已经被覆盖的提交做修改的方法呢?答案是有的。
Step1 : git rebase -i HEAD~n
我们使用命令git rebase -i HEAD~2
列出最新的两次提交:
在git rebase
d命令的交互命令中,首先逆序存放了我们最新的两次提交,最前面的状态为pick
。下面也提示了我们可以执行哪些命令,这里我们这里只使用它的edit
功能。
将我们要修改的那次提交状态改为edit
或e
,也就是将第一行内容改为:
edit 8cc5dcb add letter.dat
然后保存退出:
git已经提示我们此时已经暂停在了8cc5dc这一次提交上,后面新的提交此时应该被隐藏掉了,查看日志验证我们的判断:
不出所料,添加symbol.dat的那次提交已经被隐藏掉了,添加letter.dat的那次提交已经成为当前最新的提交了,这时候我们就可以轻松对它进行操作了。
Step2 : 修改文件内容
Step3 : git add
并git commit --amend
其实之前的图上已经提示我们如何操作了,先git add
,然后执行命令git commit --amend
提交变更。
Step4 : git rebase --continue
此时就已经完成了对那次提交的修改,查看日志和文件内容,大功告成。
- Git修改已经被覆盖的提交
- 解决使用android studio中的git update后报错当前未提交的代码被覆盖
- 解决使用android studio中的git update后报错当前未提交的代码被覆盖
- git未提交就pull有冲突导致本地改动被覆盖的解决方法
- IDEA中git 未提交代码被覆盖
- git修改已经提交的commit信息
- Git修改已经提交的注释
- 辛苦修改了几个小时的页面被覆盖了.........................................
- git使用IDEA工具更新代码,导致未提交代码被覆盖解决办法
- git commit ammend 修改已经提交的注释
- git commit ammend 修改已经提交的注释
- git commit ammend 修改已经提交的注释
- git commit amend 修改已经提交的注释
- git commit ammend 修改已经提交的注释
- SVN还原更新,本地代码没有提交,不小心代码被覆盖,代码的找回方式
- eclipse中选中字段,其他相同字段被覆盖的颜色修改
- 恢复被覆盖的linux引导
- javascript之调用被覆盖的方法
- 基于51单片机的计算器(代码篇)
- 实用全面的 C++ 学习资源
- Java 设计模式小解
- 中国剩余定理
- 【无线安全实践入门】常见攻击手段与常用攻击工具简介
- Git修改已经被覆盖的提交
- 小组学习感想
- 你现在还在手动生成set,get方法吗?使用lombok
- 并查集(转)
- 浅析Ajax不同请求方式下如何传参
- 《深度解析Java游戏服务器开发》源码
- 未出现数
- 2.使用canvas实现简单的画直线橡皮筋式画框
- POJ-2378-Tree cutting