1.移除文件

第一步:

$ git rm <flie>               #删除工作区以及仓库里面的文件
$ git rm <flie> -f      #如果文件删除之前修改过并且已经存放到暂存区域,使用强制删除选项-f
$ git rm -r <folder>   #删除工作区以及仓库里面的文件夹 $ git rm --cached <file> #将文件从仓库删除,工作区的保留
$ git rm log/*.log    #删除所有log/目录下扩展名为.log的文件

第二步:

$ git commit -m     #"删除xxx"

第三步:

$ git push GitHub仓库url 分支名    #把Github仓库上的文件也删除

2.撤销修改

a. 撤消工作区的修改

$ git checkout -- file

b.撤消暂存区的文件

$ git reset HEAD <file>  #将暂存区的文件撤销掉,回到未暂存的状态

c. 撤销仓库的修改

  如果要修改上次git commit的说明,可以使用--amend修改说明。

$ git commit --amend -m"新的说明"    #修改上次git commit的说明

  如果上次的git commit 忘记提交了某些文件,可以先git add将忘记的文件添加到暂存区,然乎再使用--amend修改上次的git commit

$ git commit -m 'first commit'     #第一次提交
$ git add tet2.txt         #将漏掉的文件先add到暂存区
$git commit -m 'first commit' --amend #重新提交文件到仓库

上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。

3.版本回退

HEAD:当前版本

HEAD^:上一个版本

HEAD^^:上上一个版本

$ git reset --soft [commit id]:log被回退到commit id,暂存区文件内容回退到commit id。使用此命令修改commit message重新提交一次文件。

$ git reset --hard [commit id]:log被回退到commit id,工作区文件内容回退到commit id。

$ git reset --hard HEAD^   #返回到上一个版本
$ git reset --hard 1094a   #返回到指定版本,1094a是指定版本的id
$git reset --soft HEAD^    #回退到上次git commit之前,git add 之后的状态
$ git status         #此时,上次git commit的文件放到了暂存区,等待git commit
$ git commit -m "再次提交"  #你可以git add新的内容,可以修改commit message,然后重新提交

4.删除指定commit记录

$ git log --oneline  #找到要删除的记录commit id
$ git rebase -i
在git-rebase-todo文件中将要删除的commit id前面的pick改为drop,wq保存退出。
 

Git学习笔记2-版本控制的更多相关文章

  1. GIT学习笔记(1):创建版本库

    GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出 ...

  2. GIT学习笔记(2):时光机穿梭与远程仓库

    GIT学习笔记(2):时光机穿梭与远程仓库 撤销操作 1.GIT如何跟踪修改 在我们修改了代码内容后,执行了git add和git commit命令来将其交由Git进行版本控制.我们前面举的例子是这样 ...

  3. Git学习笔记(二) · 非典型性程序猿

    远程库的使用 前面说到的都是git在本地的操作,那么实际协作开发过程中我们肯定是要有一个远程版本库作为项目的核心版本库,也就是投入生产使用的版本.这里我们以 Github为例.Github是一个开放的 ...

  4. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  5. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  6. Git学习笔记(四)

    一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...

  7. git 学习笔记6--remote & log

    git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git ...

  8. Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  9. 【转帖】Git学习笔记 记录一下

    本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...

  10. [转]Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

随机推荐

  1. CentOS7使用docker搭建Solo博客

    一.获取最新镜像 docker pull b3log/solo 二.启动容器 使用 MySQL 先手动建库(库名 solo,字符集使用 utf8mb4,排序规则 utf8mb4_general_ci) ...

  2. jqs实现图片轮播--通过点击按钮来实现

    <!-- 布局思路:一个大的div,中有一个ul.和一个箭头的div css样似描述: 整个盒子距离顶部100px,又水平居中 盒子的宽高为图片的实际宽高 由于每次都是看见了一张图片:有两种方式 ...

  3. Jenkins之插件Publish HTML reports的使用

    前提: 下载插件HTML Publisher plugin 一.安装 安装好HTML Publisher plugin之后,会在新建或者编辑项目时,在[增加构建后操作步骤]出现[Publish HTM ...

  4. Jmeter之BeanShell

    在Jmeter中各种分类组件中都有相应的BeanShell组件,这里简单的说明一下Beanshell的使用. 一.概念 BeanShell是一种符合Java语法的脚本语言,也有自己的一些特定语法 二. ...

  5. Shell编程——运算符

    1.declare命令: 声明变量的类型: -:给变量设定类型属性 +:给变量取消类型属性 -i:将变量声明为整数类型 -x:将变量声明为环境变量 -p:显示变量的类型 其中export是将num变为 ...

  6. Manthan, Codefest 18 (rated, Div. 1 + Div. 2) E bfs + 离线处理

    https://codeforces.com/contest/1037/problem/E 题意 有n个人,m天,在第i天早上,x和y会成为朋友,每天晚上大家都要上车,假如一个人要上车那么他得有至少k ...

  7. Codeforces Round #575 (Div. 3) D2. RGB Substring (hard version) 水题

    D2. RGB Substring (hard version) inputstandard input outputstandard output The only difference betwe ...

  8. 算法八字符串转换正数(atoi)

    请你来实现一个 atoi 函数,使其能将字符串转换成整数. 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止. 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之 ...

  9. matplotlib画预测框以及打标签

    https://blog.csdn.net/weixin_43338538/article/details/89003280 https://blog.csdn.net/yjl9122/article ...

  10. 如何创建一个简单 APT 仓库

    0. 无废话版本 需求: 有一堆 .deb 包,想把它们做成一个 APT 仓库,这样就可以用apk install pkgname进行安装了,这样一方面自己可以规避 dpkg -i xxx.deb 时 ...