git log
查看提交的历史 相关参数:
参数 | 效果 | p | 按补丁格式显示每个提交引入的差异。 | stat | 显示每次提交的文件修改统计信息。 | shortstat | 只显示 --stat 中最后的行数修改添加移除统计。 | name-only | 仅在提交信息后显示已修改的文件清单。 | name-status | 显示新增、修改、删除的文件清单。 | abbrev-commit | 仅显示 SHA-1 校验和所有 40 个字符中的前几个字符。 | relative-date | 使用较短的相对时间而不是完整格式显示日期(比如“2 weeks ago”)。 | graph | 在日志旁以 ASCII 图形显示分支与合并历史。 | pretty | 使用其他格式显示历史提交信息。可用的选项包括 oneline、short、full、fuller 和 format(用来定义自己的格式)。 | oneline | pretty=oneline --abbrev-commit 合用的简写。* |
---|
注意
如何退出 git log
=>英文状态下按Q
git revert
git reset
git revert命令的效果类似于reset,但其方法不同。 通常,reset的做法是移动分支指针到commit链其他位置,进而实现撤销更改。revert命令会在链的末尾添加新的提交以“取消”更改。
git rebase(变基)
rebase操作可以把本地未push的分叉提交历史整理成直线;
rebase的目的是使得我们在查看历史提交的变化时更容易,因为分叉的提交需要三方对比。
放弃提交到远程发现最近一个已经提交的内容
方法1:git rebase -i 倒数第二个commitid 然后 git push origin 分支名 -f (分支代码落后于远程,需要强制提交)(提交记录,提交内容都被去掉了)
提示:此方法需要vim操作命令窗口(输入i进入编辑模式, 将需要删除版本之前的pick 修改为drop或者d,删除该记录,然后按下ESC,输入:wq保存并退出,此时查看git log 发现最近的commit已经被删除)
方法2 git reset --hard HEAD~ 然后 git push origin 分支名 -f (分支代码落后于远程,需要强制提交)
方法3 git revert 最近的commitid 然后 git push origin 分支名 (提交记录仍然存在,提交内容被去掉了)
现在这里有三个测试提交,现在的需求就是去掉“第三个测试提交”
第一次修改内容
变更了“下载数据明细” => "下载数据明细111"
第二次修改内容
多复制了两行内容
第三次修改内容
删除了一行数据 查看日志
方法1 git rebase
git rebase -i 9e7f6f52041d989ef44ba12c750ba9185630cc8b
在git rebase中输入VIM时如何开始输入?
参考连接1:在git rebase中输入VIM时如何开始输入? 参考链接:git rebase 的作用 git删除中间某次提交
方法2采用git reset回退到第二次提交的位置
执行代码
git reset --hard 9e7f6f52041d989ef44ba12c750ba9185630cc8b
git push origin product-zy -f
得到的代码结果
这个时候我们已经回退到了“第三个测试提交”之前的内容
查看git log时间线
方法3 采用git revet
重新提供更改四的commit 更改的代码区域:
这个时候会发现代码多了新的更改记录,更改四的代码记录被回退
可以看到新增了一条revert的记录并且显示修改4的commit信息还在
扩展:
如果我们需要回退到一个并不是当前最近的一次更改,与当前的版本之间间隔着几个历史记录,并且之间的这些历史记录需要保存,我们改如何处理。 如图:提交记录为 A-B-C,想要干掉B,还可以用 git rebase --onto A B C
1.尝试git rebase
新增一个更改5,然后我们的目标是保留除了更改2之外的所有记录 也就是去掉更改2的代码
命令行(暂时为解决)
git rebase -i 9d30a942d64140072a888e308f880c25030d5d08
执行产生了冲突这里需要解决 这一步的操作原理可以参考: Git 实用操作:撤销 Commit 提交(动图讲解)
总结
rebase | revert | reset | 提交记录 | 去掉 | 存在且新增一个revert的修改 | 回退commit,默认方式. | 提交内容 | 去掉 | 去掉 | 保留源码,默认方式. |
---|
以上如有不对欢迎指正
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!