回滚到某次历史提交
git log:查看分支提交历史,确认需要回退的版本
git reset --hard commit_id:进行版本回退
git push --force origin:推送至远程分支


合并提交记录
git log:查看分支提交历史,确认需要开始合并的最初版本,应选取最初版本的前一个版本
git rebase -i commit_id:进入版本合并vim编辑模式,大概如下:

pick acf6d24 优化
pick 0353373 增加逻辑
pick 1234567 增加其他功能# Rebase 2169bc5..0353373 onto 2169bc5 (2 commands)
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit

将第二行的pick改为s或者squash,意思是把“优化”和“增加逻辑”两次提交记录合并成一次,而“增加其他功能”保留原有提交记录,
然后输入:wq保存,然后会到修改提交注释的界面,不改的话直接:q退出,否则修改后:wq保存退出

git log:确认提交记录是否正确修改
git push --force origin:推送至远程分支


修改提交记录注释

git log:查看分支提交历史,确认需要开始合并的最初版本,应选取最初版本的前一个版本
git rebase -i commit_id:进入版本合并vim编辑模式,大概如下:

pick acf6d24 优化
pick 0353373 增加逻辑
pick 1234567 增加其他功能

将要修改的那行的pick改成reword,输入:wq保存退出,然后会到修改提交注释的界面,修改注释后:wq保存退出

git log:确认提交记录是否正确修改
git push --force origin:推送至远程分支


剔除某次提交
比如在master分支,有以下提交历史:

42eae13 (HEAD -> master) 第四次修改
97ea0f9 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改

如果发现第三次修改有错误,想要剔除第三次修改,却要保留第四次修改呢?

这个时候就可以用revert命令:

git revert -n 97ea0f9
git commit -m "恢复第三次修改"

Git提交历史会变成:

33b8b30 (HEAD -> master) Revert "恢复第三次修改"
42eae13 第四次修改
97ea0f9 第三次修改
e50b7c2 第二次修改
3a52650 第一次修改
实际上,Git把第三次修改从提交中剔除(还原)了,还保留了第四次修改,并且产生了新的commit_id


如果要查看完整的提交记录,可以用命令:

git reflog

[Git]git的一些常用操作笔记相关推荐

  1. Node.js Git Server搭建及Git常用操作笔记

    Node.js Git Server搭建及Git常用操作笔记 安装Git工具即可在本地进行Git仓库的管理,如果要实现远程仓库则需要搭建Git Server.通过Node.js搭建Git Server ...

  2. 工具篇:Git与Github+GitLib常用操作(不定期持续更新)

    工具篇:Git与Github+GitLib常用操作(不定期持续更新) 前言: 写这个主要是打算自己用的,里边很多东西都是只要我自己看得懂,但是用了两个星期发现真是越用越简单,越用越好用,私以为得到了学 ...

  3. 总结关于Git的一些基本常用操作

    git 的基本工作流程 1. clone(克隆): 从远程仓库中克隆代码到本地仓库 2. checkout (检出):从本地仓库中检出一个仓库分支然后进行修订 3. add(添加): 在提交前先将代码 ...

  4. emacs常用操作笔记

    Table of Contents 1. emacs操作 1.1. emacs ecb 常用操作 1.2. 与文件操作有关的命令 1.3. 与光标移动操作有关的命令 1.4. 与文件删除操作有关的命令 ...

  5. Linux用户分组管理的常用操作笔记

    linux使用用户和分组的概念来分权限管理系统文件,这对于系统的安全有很大的用处. 先来看下linux中文件信息的基本属性: 如图所示,使用 ls -al 指令,就可以看到文件夹下各文件夹/文件的基本 ...

  6. mysql cascade的用法_MySQL常用操作笔记

    1.创建root用户的密码 mysqladmin -u root password "new_password"; 2.连接到Mysql服务器 mysql -u root -p 1 ...

  7. redis常用操作笔记

    ##基本用法(非关系型数据库) 1. 登录redis方法:redis-cli --raw 2. 退出:exit 3. 操作服务端开始/停止/启动:sudo service redis start/st ...

  8. win下svn常用操作笔记

    svn基本命令 checkout 检出 把服务器代码下载到本地一份 update 更新 把服务器上的最新代码更新到本地 commit 提交 把本地代码提交到服务器上 win下svn的客户端工具Tort ...

  9. ipmitool 设置网关_IPMITOOL常用操作指令

    一.开关机,重启 1. 查看开关机状态: ipmitool -H (BMC的管理IP地址) -I lanplus -U (BMC登录用户名) -P (BMC 登录用户名的密码) power statu ...

最新文章

  1. oracle 更改ip
  2. java URI 与URL问题
  3. 基于verilog的洗衣机设计
  4. charles请求转发_用免费开源的frp实现内网穿透,使用nginx转发的方式去掉端口号...
  5. 远程链接错误:这可能是由于credssp加密oracle修正
  6. 【CodeForces - 1199C】MP3(思维,离散化)
  7. CSS文本溢出的处理方法总结
  8. 【Deep Learning】genCNN: A Convolutional Architecture for Word Sequence Prediction
  9. GitHub一夜爆火的阿里高并发技术小册究竟有什么魅力?
  10. python写webservice接口_Python开发WebService系列教程之REST,web.py,eurasia,Django
  11. 苹果手机上网速度慢_科普|手机信号明明满格却上不去网?4招帮你搞定它!
  12. 你有梦想吗?华为云学院助你实现梦想
  13. 轻轻松松背单词软件测试,十款背单词软件测评报告(转载)
  14. 华硕服务器系统都还原不了怎么办,华硕笔记本重装系统后dns解析失败怎么办
  15. python服务器传输wav文件,Python处理wav文件(二进制文件读写)
  16. jquery事件绑定的问题Uncaught TypeError: $(...).live is not a function at HTMLDocument.<anonymous> (ex5_
  17. html页面高度不同浏览器兼容性设置
  18. 快速打开命令行方法集合
  19. Java筛选重复名字输出单一的,java - 输入:一个单词的字符串。 打印给定字符串的所有重排,而无需重复。 爪哇 - 堆栈内存溢出...
  20. Linux_Geany使用指南

热门文章

  1. java里jlp是什么意思,JLP是什么意思
  2. 《【西天取经】Go语言学习笔记:基本变量与类型》
  3. 浅谈计算机科学与现代教育技术,现代教育技术浅谈论文
  4. 数值线性代数之列主元Gauss消去法(MATLAB)
  5. 10x程序员工作法 学习笔记
  6. Hadoop--yarn--MapReduce安装配置
  7. 今日头条2018校园招聘后端开发工程师(第四批)编程题 - 题解
  8. Spring4 学习教程
  9. 国米夺冠,18年的等待.
  10. 0804空间直线及其方程-向量代数与空间解析几何