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 创建到推送 ...
随机推荐
- vue2.x学习笔记(十一)
接着前面的内容:https://www.cnblogs.com/yanggb/p/12586416.html. 表单的输入绑定 表单的输入绑定是一块很重要的内容,因为所有的业务系统都离不开基础表单的录 ...
- 详解 字符串—— String、StringBuffer 与 StringBuilder
本来这篇博文的内容,本人打算在之后的代码中一点一点通过实例讲解的,但是,本人发现,其实这里的知识点还是蛮重要的. 并且,字符串类型,在任何的程序语言中都是被认真对待的,所以,今天专门写一篇博文来介绍一 ...
- 2. Git-命令行-删除本地和远程分支
命令行方式 Git Bash: 切换到要操作的项目文件夹 命令行 : $ cd <ProjectPath> 查看项目的分支们(包括本地和远程) 命令行 : $ git branch -a ...
- (转载)基于BIGINT溢出错误的SQL注入
我对于通过MySQL错误提取数据的新技术非常感兴趣,而本文中要介绍的就是这样一种技术.当我考察MySQL的整数处理方式的时候,突然对如何使其发生溢出产生了浓厚的兴趣.下面,我们来看看MySQL是如何存 ...
- shiro:加密及密码比对器(三)
基于[自定义remle(二)]项目增加加密功能 1:数据库t_user表增加一列(盐) 增加字段:salt CREATE TABLE `t_user` ( `id` int(11) NOT NULL ...
- 聊一聊JSONP和图像Ping的区别
JSONP 在讲 JSONP 之前需要再来回顾一下在页面上使用 script 引入外部的 js 文件时到底引入了什么? 先建立一个 index.js 文件. console.log(123) 再建立一 ...
- TensorFlow的模型保存与加载
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf #tensorboard --logdir=&qu ...
- solr管理集合
其实完全版的管理,在web页面上就有. 同时,在官网文档上,也有:https://lucene.apache.org/solr/guide/6_6/coreadmin-api.html#CoreAdm ...
- CG-CTF(6)
CG-CTF https://cgctf.nuptsast.com/challenges#Web 续上~ 第三十一题:综合题2 查看本CMS说明: 分析: ①数据库表名为admin:字段名为usern ...
- 2019-2020-1 20199329《Linux内核原理与分析》第九周作业
<Linux内核原理与分析>第九周作业 一.本周内容概述: 阐释linux操作系统的整体构架 理解linux系统的一般执行过程和进程调度的时机 理解linux系统的中断和进程上下文切换 二 ...