Git管理修改、撤销修改、删除文件
什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改。
a.管理修改
对于提交修改,其实和正常提交文件一样的操作,先提交到本地版本库:
$ git add test.txt
$ git commit -m "我新增了文字哦"
然后在从本地版本库提交到github的仓库:
$ git push origin master
PS:这里有个值得注意的地方,如果之前本地没有进行过提交到Git仓库,则执行:
$ git push -u origin master
b.撤销修改
在实际工作中,我们会不断对文件进行修改,然后不断提交修改到本地版本库,也就是不断执行这2个操作:
$ git add readme.txt
$ git commit -m "第一次修改"
如果发现我们有提交错了,可以通过Git版本回退,返回某个历史版本。现在,我们回顾一下test.txt文件一共有几个版本被提交到Git仓库里了:
$ git log
commit a2b692126034f2e77f0e30d5fdf4596e2ebe1ddb
Author: shiyubushiyu <shiyubushiyu.li@163.com>
Date: Fri Aug :: + 第三次修改 commit 720d7fcf1e4ba21ff2aea93b9ba29dcba3ce4066
Author: shiyubushiyu<shiyubushiyu.li@163.com>
Date: Fri Aug :: + 第二次修改 commit b3228c156a98d211207e3c5af4392c12718d0f8d
Author: shiyubushiyu<shuyubushiyu.li@163.com>
Date: Fri Aug :: + 第一次修改
可以看到最近有3次修改,下面来看看怎么返回某个指定的版本,
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交1094adb...(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
现在,我们要把当前版本(第三次修改)回退到上一个版本(第二次修改),就可以使用git reset命令:
$ git reset --hard HEAD^
HEAD is now at 720d7fc 第二次修改
然后我们可以去test.txt看看是不是被还原到第二次修改了,答案是肯定的。
那版本回退之后,我后悔了肿么办,我想回到第三次修改肿么办呢?
办法其实还是有的,只要上面的命令行窗口还没有被关掉,你就可以顺着往上找啊找啊,找到那个(第三次修改)的commit id是a2b69...,于是就可以指定回到未来的某个版本:
$ git reset --hard a2b69
HEAD is now at a2b6921 第三次修改
版本号没必要写全,前几位就可以了,Git会自动去找。当然也不能只写前一两位,因为Git可能会找到多个版本号,就无法确定是哪一个了。
然后看看是否改回第三次了呢:
$ cat test.txt
你好,世界!
开始第三次修改
c.删除文件
用rm命令删除文件(新文件.txt):
$ git add 新文件.txt
$ git commit -m "remo"
然后:
$ rm新文件.txt
$ git commit -m "删除了文件"
[master fb14c3a] 删除了文件
file changed, deletion(-)
delete mode "\346\226\260\346\226\207\344\273\266.txt"
然后:
$ git rm 新文件.txt
rm '新文件.txt'
$ git commit -m "remo"
[master 72774be] remo
file changed, deletions(-)
delete mode 新文件.txt
最后:
$ git push origin master
Counting objects: , done.
Delta compression using up to threads.
Compressing objects: % (/), done.
Writing objects: % (/), bytes | bytes/s, done.
Total (delta ), reused (delta )
To git@github.com:yy-biboy/learnGitt.git
0f71c49..72774be master -> master
这样就彻底删除了 新文件.txt
so,就是这么简单~
Git管理修改、撤销修改、删除文件的更多相关文章
- Git管理修改、撤销和删除文件
目录 备注: 知识点 管理修改 撤销修改 没有git add添加到暂存区时的撤销 git add添加到暂存区后的撤销 git commit提交后的撤销 删除文件 确定从版本库中删除文件 从暂存区把误删 ...
- [git 学习篇]git管理的是修改,并非文件
你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git管理的 ...
- 【Git】Git 本地的撤销修改和删除操作
一:撤销操作 比如我现在在readme.txt文件里面增加一行 内容为555555555555,我们先通过命令查看如下: 在我未提交之前,我发现添加5555555555555内容有误,所以我得马上恢复 ...
- git 学习之撤销和删除
在实际的工作和学习中我们经常的会对文件进行修改,但是或多或少的就会发现由于某些原因修改是错误的这时候就需要对所做的修改进行撤销,更或者某些时候需要对文件进行删除.本节就会告诉大家如何操作. 撤销操作 ...
- git学习03 - 撤销修改&删除文件
撤销修改:git checkout -- filename :将工作区文件回到最近一次add 或者 commit的状态 撤销修改分为三种情况: 1.未提交至暂存区 使用git checkout -- ...
- Git教程之撤销修改(7)
自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行:
- git教程:撤销修改
转载:撤销修改 自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed ve ...
- git 学习笔记 ---撤销修改
自然,你是不会犯错的.不过现在是凌晨两点,你正在赶一份工作报告,你在readme.txt中添加了一行: $ cat readme.txt Git is a distributed version co ...
- mzy git学习,撤销修改(二)
git checkout – file: 撤销我们对工作区的修改(没有提交到暂存区) 当我们在工作区修改了之后,并没有提交到暂存区,如果要撤销对 某个文件的修改的话,就使用 git checkout ...
- git 管理和存储二进制大文件
git 管理二进制文件 本文档将逐步带你体验 git 的大文件管理方式. 环境: windows10 64位 cmd git版本: git version 2.18.0.windows.1 创建到推送 ...
随机推荐
- D - Leading and Trailing LightOJ - 1282
题解:求n^k的前三位和后三位. 后三位直接快速幂对1000去余就可以了.前三位可以转换成浮点数来操作,也是用快速幂,我们只保留答案的前三位,当前值大于1000.0的话就除以10,直到结果小于等于10 ...
- icepdf和pdfbox转pdf文档为图片
icepdf转pdf文档为图片 首先导入icepdf jar包或maven pdfPath为pdf文件路径.pdfimgpsth为图片保存的路径 public static void icePdfIm ...
- 如何利用python实现报表自动化?让你更高效的完成工作内容
如果能够实现报表自动化,那我们将节约不少的时间,更高效的完成工作内容.那么,如何利用python实现报表自动化呢?本文将介绍xlwt .xlrd.xlutils的常用功能,xlwt写Excel时公式的 ...
- testNG groups 分组测试
testNG的分组通过xml文件<groups>标签和@Test(group="组名")来实现分组 xml中关于分组的详细介绍,通过groups 定义一个组,通过< ...
- 使用dynamic和MEF实现轻量级的AOP组件 (2)
转摘 https://www.cnblogs.com/niceWk/archive/2010/07/21/1782092.html 偷梁换柱 上一篇我们初试了DynamicAspect这把小刀,如果你 ...
- 理解java容器底层原理--手动实现LinkedList
Node java 中的 LIinkedList 的数据结构是链表,而链表中每一个元素是节点. 我们先定义一下节点: package com.xzlf.collection; public class ...
- JS在线代码编辑器多种方案monaco-editor,vue-monaco-editor
前言 JavaScript在线代码编辑器. 需要代码提示,关键字高亮,能够格式化代码.(不需要在线运行) 简简单单的需求. 方案一: Monaco-editor 简介:微软的开源项目,开源中国上面的在 ...
- 使用宝塔面板部署tp5网站
来源:https://www.cnblogs.com/e0yu/p/9102902.html 遇到一个问题,就是当thinkphp5部署在宝塔面板上,会出现这个问题: 参考解决办法: http://w ...
- php最快捷的插入数据,3000万仅需5秒
<?phpheader('content-type:text/html;charset=utf-8');//采集数据$url="http://www.keepclub.com/club ...
- JS 获取GET 参数
对于 URL,我们需要了解更多,因为我们的开发中可能会需要提取URL的部分信息来做不同的事情,事实上这也是与后端交互的一种独特的方式,当然这肯定是安全的,当请求被返回,关于 url 的信息就被记录在了 ...