Git 常用操作(4)- 更改提交
1. git reset —— 回溯历史版本
回溯到创建feature-A 分支前
让我们先回溯到上一节feature-A分支创建之前,创建一个名为fix-B 的特性分支。
要让仓库的HEAD、暂存区、当前工作树回溯到指定状态,需要用到git rest --hard命令。只要提供目标时间点的哈希值A,就可以完全恢复至该时间点的状态。
$ git reset --hard fd0cbf0d4a25f747230694d95cac1be72d33441d HEAD is now at fd0cbf0 Add index
推进至feature-A 分支合并后的状态
git log命令只能查看以当前状态为终点的历史日志。所以这里要使用git reflog命令,查看当前仓库的操作日志。在日志中找出回溯历史之前的哈希值,通过git reset --hard命令恢复到回溯历史前的状态。
首先执行git reflog 命令,查看当前仓库执行过的操作的日志。
$ git reflog4096d9e HEAD@{0}: commit: Fix Bfd0cbf0 HEAD@{1}: checkout: moving from master to fix-Bfd0cbf0 HEAD@{2}: reset: moving to fd0cbf0d4a25f747230694d95cac1be72d33441d83b0b94 HEAD@{3}: merge feature-A: Merge made by the 'recursive' strategy.fd0cbf0 HEAD@{4}: checkout: moving from feature-A to master8a6c8b9 HEAD@{5}: checkout: moving from master to feature-Afd0cbf0 HEAD@{6}: checkout: moving from feature-A to master8a6c8b9 HEAD@{7}: commit: Add feature-Afd0cbf0 HEAD@{8}: checkout: moving from master to feature-Afd0cbf0 HEAD@{9}: commit: Add index9f129ba HEAD@{10}: commit (initial): First commit
从上面数第四行表示feature-A 特性分支合并后的状态,对应哈希值为83b0b94A。我们将HEAD、暂存区、工作树恢复到这个时间点的状态。
$ git checkout master$ git reset --hard 83b0b94HEAD is now at 83b0b94 Merge branch 'feature-A'
2. 消除冲突
$ git merge --no-ff fix-BAuto-merging README.mdCONFLICT (content): Merge conflict in README.mdRecorded preimage for 'README.md'Automatic merge failed; fix conflicts and then commit the result.
系统告诉我们README 文件发生了冲突(Conflict)。系统在合并README文件时,feature-A 分支更改的部分与本次想要合并的 fix-B 分支更改的部分发生了冲突。
查看冲突部分并将其解决
用编辑器打开README 文件,就会发现其内容变成了下面这个样子。
# Git教程 <<<<<<< HEAD - feature-A ======= - fix-B >>>>>>> fix-B
======= 以上的部分是当前 HEAD 的内容,以下的部分是要合并的 fix-B 分支中的内容。我们在编辑器中将其改成想要的样子。
# Git教程 - feature-A - fix-B
如上所示,本次修正让feature-A 与fix-B 的内容并存于文件之中。但是在实际的软件开发中,往往需要删除其中之一,所以各位在处理冲突时,务必要仔细分析冲突部分的内容后再行修改。
3. git commit --amend —— 修改提交信息
4. git rebase -i —— 压缩历史
Git 常用操作(4)- 更改提交相关推荐
- git 常用操作总结——基于Gitlab
博主目前在蚂蚁集团-体验技术部,AntV/S2 是博主所在团队的开源项目--多维交叉分析表格,欢迎使用,感谢到 S2 github 仓库点赞 star,有任何关于前端面试.就业.技术问题都可给在文章后 ...
- Node.js Git Server搭建及Git常用操作笔记
Node.js Git Server搭建及Git常用操作笔记 安装Git工具即可在本地进行Git仓库的管理,如果要实现远程仓库则需要搭建Git Server.通过Node.js搭建Git Server ...
- git报错:‘fatal:remote origin already exists‘怎么处理?附上git常用操作以及说明。
git添加远程库的时候有可能出现如下的错误, 怎么解决? 只要两步: 1.先删除 $ git remote rm origin 2.再次执行添加就可以了. ---------------------- ...
- Git 常用操作(1)- 配置、查看、添加、暂存和提交
1. Git 基本概念 Git 有三种状态:已提交(committed).已修改(modified)和已暂存(staged). 已提交:表示数据已经安全的保存在本地数据库中. 已修改:表示修改了文件, ...
- 如何团队协作,代码托管?Git使用教程:最详细、最浅显、一文读懂Git常用操作!...
点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 作者:涂根华 来源:www.cnblogs.com/tugenhua0707 Git使 ...
- 版本控制工具——Git常用操作(下)
本文由云+社区发表 作者:工程师小熊 摘要:上一集我们一起入门学习了git的基本概念和git常用的操作,包括提交和同步代码.使用分支.出现代码冲突的解决办法.紧急保存现场和恢复现场的操作.学会以后已经 ...
- Git 常用操作 | 重写 commit 历史
当我们修改完代码,提交了一个 commit,然后发现改错了,怎么修正?这种情况分为两种:修正最近一次提交,和修正历史多个提交. 修正最近一次提交 如果发现刚刚提交的内容有错误,当场再修改一下再提交一个 ...
- Git使用教程:最详细、最浅显、一文读懂Git常用操作!
作者:涂根华 来源:www.cnblogs.com/tugenhua0707 转自:datawhale Git使用教程: 最详细.最傻瓜.最浅显.真正手把手教! 导读:因为教程详细,所以行文有些长,新 ...
- Git学习总结(22)——Git 常用操作再总结
一.前言 每一个项目,我们都把他变成一个git仓库.一个git仓库包含无数分支,默认分支为master,每个分支都包含无数个版本库,每个版本库都包含无数个文件. 二.常用操作 $ git co(che ...
- git常用操作以及码云Gitee连接git
文章目录 1 git简介 1.1 工作区.暂存区.版本库 1.2 工作区状态保存 2 和gitee连接 2.1 创建git仓库 2.2 通过ssh公钥连接 2.2.1 获取公钥 2.2.2 gitee ...
最新文章
- c+语言+null,C/C++语言中NULL、'\0’和0的区别
- PC人脸识别登录,出乎意料的简单
- Python - Sublime Text 3 控制台不能输出中文的解决方法
- MyBatis中提示:You have an error in your SQL syntax; check the manual that corresponds to your MySQL ser
- 机器学习实战(用Scikit-learn和TensorFlow进行机器学习)(九)
- 前端学习(670):分支流程控制if
- word无法打开请去应用商店_word软件是什么?word文档是什么?可以用来干什么?...
- [前端]多线程在前端的应用——Javascript的线程
- [Selenium]如何通过Selenium实现Ctrl+click,即按住Ctrl的同时进行单击操作
- Matlab C-Mex Round 1
- 使用wePE安装系统
- HackMyvm(九)Gigachad持续更新
- 【SPFA】【最短路】 腾讯大战360
- matlab badsubscript,matlab错误:Subscript indices must either be real positive integers or logicals....
- 泰国80亿互联网记录数据库泄漏,疑遭黑客攻击
- 计算机认知训练效果,维持认知健康人群晚年认知功能的计算机认知训练
- 小红书数据平台:2022年5月彩妆行业数据洞察报告
- ASP.NET 三层架构技术 人力资源管理系统项目HR (深入WebServic
- 1451_TC275 DataSheet阅读笔记12_时钟、温度以及供电
- 视频通话和聊天工具Jitsi