Git修改已经被覆盖的提交
2017-11-26 21:41
211 查看
本文摘选自文章:【Jitwxs】Git教程 或【CSDN】Git教程
如果你不想看详细的描述,直接看步骤即可:
1.
2.修改文件
3.
4.
5.
假设我们目录下有三个文件,分别是
我们先提交digit.dat,然后提交letter.dat,最后提交symbol.dat:
此时我们想起来,
修改letter.dat内容,并发起一次新提交
不发起新提交,对之前的那次提交做修改
我们不讨论发起新提交的情况,仅仅讨论如何对那次提交做修改。你也许会说,这很简单啊,直接使用命令
不错,这没有问题,但是这样的话我们对
有没有在不影响其他的提交的情况下,对已经被覆盖的提交做修改的方法呢?答案是有的。
Step1 :
我们使用命令
在
将我们要修改的那次提交状态改为
edit 8cc5dcb add letter.dat
然后保存退出:
git已经提示我们此时已经暂停在了8cc5dc这一次提交上,后面新的提交此时应该被隐藏掉了,查看日志验证我们的判断:
不出所料,添加symbol.dat的那次提交已经被隐藏掉了,添加letter.dat的那次提交已经成为当前最新的提交了,这时候我们就可以轻松对它进行操作了。
Step2 : 修改文件内容
Step3 :
其实之前的图上已经提示我们如何操作了,先
Step4 :
此时就已经完成了对那次提交的修改,查看日志和文件内容,大功告成。
如果你不想看详细的描述,直接看步骤即可:
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 rebased命令的交互命令中,首先逆序存放了我们最新的两次提交,最前面的状态为
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
此时就已经完成了对那次提交的修改,查看日志和文件内容,大功告成。
相关文章推荐
- Android Eclipse之Git插件安装、配置、提交、修改、冲突、查看历史、覆盖。
- git commit ammend 修改已经提交的注释
- Android Eclipse之Git插件安装、配置、提交、修改、冲突、查看历史、覆盖。
- 【Git学习笔记】对已经添加到仓库的文件修改后再次提交到仓库
- git commit ammend 修改已经提交的注释
- 对上次刚提交的 进行修改 覆盖 git commit –amend
- git commit ammend 修改已经提交的注释
- Git 对已经加入版本控制的文件,修改后希望不被提交办法(转)
- git commit amend 修改已经提交的注释
- git下修改已经提交N次代码的user.name和user.email
- 修改已经提交到远端的git commit信息
- Git修改已经提交的注释
- git修改已经提交的commit信息
- git commit ammend 修改已经提交的注释
- Git修改已经提交的注释或日志
- Git 对已经加入版本控制的文件,修改后希望不被提交办法
- eclipse 自带git插件 文件提交后修改标志不明显
- git 提交修改
- git忽略已经被提交的文件
- Git修改提交的用户名和Email