Git学习笔记(3)——撤销修改和文件的删除
本文主要记录了git中,错误的撤销和文件的删除。
撤销修改
- 这里有3中情况
- 改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
- 不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了1,第二步,按照1操作。
- 已经提交了不合适的修改到版本库时,想要撤销本次提交,可以版本回退,不过前提是没有推送到远程库。
//第一种撤销:工作区撤销
ubuntu@myubuntu:~/joe/learngit$ vi readme.txt //工作区的错误还没有add到暂存区
ubuntu@myubuntu:~/joe/learngit$ git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <file>..." 更新要提交的内容)
(使用 "
git checkout -- <file>..."
丢弃工作区的改动) 修改: readme.txt 修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
ubuntu@myubuntu:~/joe/learngit$
git checkout --
readme.txt
ubuntu@myubuntu:~/joe/learngit$ vi readme.txt
//第二种撤销:暂存区撤销
ubuntu@myubuntu:~/joe/learngit$ vi readme.txt
ubuntu@myubuntu:~/joe/learngit$ git add readme.txt //错误的文件已经提交到暂存区了
ubuntu@myubuntu:~/joe/learngit$ git status
位于分支 master
要提交的变更:
(使用 "
git reset HEAD <file>..."
撤出暂存区) 修改: readme.txt ubuntu@myubuntu:~/joe/learngit$ git reset HEAD readme.txt
重置后撤出暂存区的变更:
M readme.txt
ubuntu@myubuntu:~/joe/learngit$ vi readme.txt
ubuntu@myubuntu:~/joe/learngit$ git status //撤出暂存区后,还需使用checkout丢弃工作区的改动
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add <file>..." 更新要提交的内容)
(使用 "git checkout -- <file>..." 丢弃工作区的改动) 修改: readme.txt 修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
ubuntu@myubuntu:~/joe/learngit$
git checkout --
readme.txt
ubuntu@myubuntu:~/joe/learngit$ vi readme.txt
//第三种已经提交,使用版本回退(学习笔记2)
文件的删除
- 使用rm删除文件,然后git add filename添加到暂存区,git commit 提交。
- 直接使用git rm filename ,不用git add直接git commit即可。
//第一种方法git rm file
ubuntu@myubuntu:~/joe/learngit$ ls
abc.c readme.txt
ubuntu@myubuntu:~/joe/learngit$
git rm
abc.c
rm 'abc.c'
ubuntu@myubuntu:~/joe/learngit$ git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <file>..." 撤出暂存区) 删除: abc.c ubuntu@myubuntu:~/joe/learngit$
git commit -m "del abc"
[master 020f927] del abc
file changed, insertions(+), deletions(-)
delete mode abc.c
ubuntu@myubuntu:~/joe/learngit$ git status
位于分支 master
无文件要提交,干净的工作区
ubuntu@myubuntu:~/joe/learngit$ ls
readme.txt
//第二种方法rm file
ubuntu@myubuntu:~/joe/learngit$ ls
ab.c readme.txt
ubuntu@myubuntu:~/joe/learngit$ rm ab.c
ubuntu@myubuntu:~/joe/learngit$ ls
readme.txt
ubuntu@myubuntu:~/joe/learngit$ git status
位于分支 master
尚未暂存以备提交的变更:
(使用 "git add/rm <file>..." 更新要提交的内容)
(使用 "git checkout -- <file>..." 丢弃工作区的改动) 删除: ab.c 修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
ubuntu@myubuntu:~/joe/learngit$ git add ab.c
ubuntu@myubuntu:~/joe/learngit$ git status
位于分支 master
要提交的变更:
(使用 "git reset HEAD <file>..." 撤出暂存区) 删除: ab.c ubuntu@myubuntu:~/joe/learngit$
git commit -m "del ab.c"
[master 0ad1dfe] del ab.c
file changed, insertions(+), deletions(-)
delete mode ab.c
ubuntu@myubuntu:~/joe/learngit$ git status
位于分支 master
无文件要提交,干净的工作区
Git学习笔记(3)——撤销修改和文件的删除的更多相关文章
- 【Git学习笔记】撤销修改
工作区下的.git文件夹其实是Git的版本库,Git的版本库里存了很多东西,其中最重要的就是称为 stage 的暂存区,还有Git为我们自动创建的第一个分支 master ,以及指向master的一个 ...
- Git学习笔记三--管理修改、撤销修改、删除文件
1.管理修改 什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git ...
- Git学习笔记05-撤销修改
使用 git checkout -- file可以撤销工作区的修改 一种是修改后还没有放到暂存区,撤销修改回到和版本库一模一样的状态 lesson.txt文件已经提交到版本库了,内容如图. 修改一 ...
- Git学习笔记04-管理修改
Git跟踪并管理的是修改,而非文件.新增文件,修改一行,删除一点,都算是修改. 在.git工作区新增一个文件,test.txt,输入test git ...然后git add add之后修改t ...
- 【转帖】Git学习笔记 记录一下
本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...
- GIT学习笔记(2):时光机穿梭与远程仓库
GIT学习笔记(2):时光机穿梭与远程仓库 撤销操作 1.GIT如何跟踪修改 在我们修改了代码内容后,执行了git add和git commit命令来将其交由Git进行版本控制.我们前面举的例子是这样 ...
- Git学习笔记(10)——搭建Git服务器
本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...
- Git学习笔记---协作的一般流程
一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...
- GIT学习笔记(1):创建版本库
GIT学习笔记(1):创建版本库 创建版本库 1.创建合适目录并初始化为仓库 版本库即需要交由Git进行版本控制的目录,其下所有文件的修改.删除,Git都能跟踪还原. 说明:初始化后,当前目录下会多出 ...
随机推荐
- struts2中如何使用主题theme
一.什么是主题? 主题就是一种风格化标签,能够让所有UI标签能够产生同样的视觉效果而归集到一起的一组模板,即风格相近的模板被打包为一个主题 二.struts2提供的主题有哪些呢?struts2中如何修 ...
- Excel导入-----导出(包含所选和全部)操作
在做系统的时候,很多时候信息量太大,这时候就需要进行Excel表格信息的导入和导出,今天就来给大家说一下我使用Excel表格信息导入和导出的心得. 1:首先需要在前端显示界面View视图中添加导入Ex ...
- Java变量自增和自减运算符的用法
1.后加加(num++): 先输出运算结果再加加: public static void main(String[] args){ int num=10; int p1=num++; System. ...
- 移动App崩溃的测试用例设计
我们的日常生活中对移动设备越来越多的使用意味着移动App测试这个主题已成为需要考虑的一个无法避免的问题.根据最近的调查研究,用户难以容忍有bug的移动App. 移动App Bug的影响是用户体验差.A ...
- Arcgis API For IOS扩展AGSDynamicLayer新旧版API对比
AGSDynamicLayer(ForSubclassEyesOnly) Category Reference Description This category organizes the meth ...
- CentOS详解top命令各个数据的含义
最近在docker(宿主机是centos虚拟机)里安装gitlab,发现随着时间的运行,虚拟机的内存持续走高,运行几个小时之后内存已经爆掉了,putty远程处理于假死状态. 这个时候就需要查看内存进程 ...
- sacc scss less
CSS 预处理器技术已经非常的成熟,而且也涌现出了越来越多的 CSS 的预处理器框架.本文向你介绍使用最为普遍的三款 CSS 预处理器框架,分别是 Sass.Less CSS.Stylus. 首先我们 ...
- Firebird数据库系统的开发团队
下载Firebird3的发布文档,上面列出了开发团队,仔细看了看,原来俄罗斯人是主导(内核开发),法国人.智利人.巴西人.日本人.荷兰人.捷克人都有.共17人,3人全职. able 13.1. Fir ...
- centos 安装apache 和 php5.6
centos 安装 php5.6,安装前需要先安装数据库和apache 安装 apache2.4 安装基础依赖:# yum install gcc gcc-c++ glibc glibc-devel ...
- iOS 标题内容待定
UITableView: UITableViewCell的声明文件.所包含的: UIView控件(contentView,作为其它元素的父控件) -- 容器 两个UILabel控件( textLabe ...