git reset, git status, git clean, .gitignore, git diff, git restore 的关系梳理
当进入装有git的目录里,创建一文件,如
$touch test.txt
这时候,运行git status,就会发现这个文件出现在untracked files中
$git status
On branch master
Your branch is up to date with 'origin/master'.Untracked files:(use "git add <file>..." to include in what will be committed)test.txtnothing added to commit but untracked files present (use "git add" to track)
这时候运行git reset --hard,
$git reset --hard
该命令把tracked file中的改动,即和commit中不一致的全部丢弃。但是,不会影响untracked file,所以这个时候运行git status,结果一样。
要把Untracked files清除掉,要用到git clean
$ git clean -df
Removing test.txt
这里的-d表示对于directory也要深入进去,-f是当clean.requireForce不为false的时候必须要有的。
这时候运行git status,会发现untracked files中已经为空:
$ git status
On branch master
Your branch is up to date with 'origin/master'.nothing to commit, working tree clean
再来说说 .gitignore 文件,
$nano .gitignore
每一行(除掉comment部分)都是一种类型的文件,被git ignore,即忽视的。比方说*.ko,*.mod, *.o 文件,它们都是modules在编译过程中产生的文件。所有符合这些特征的文件,在git status中都不会显示,所以前面我们看不到这些文件(即使有)。
但是,如果运行git clean的时候加上-x选项,.gitignore文件将被忽略,也就是符合.gitignore文件中定义的特征的文件也会被移除。
$git clean -dfx
会出现大量的这类文件被移除
再来谈谈git diff, 如上如果新创建一文件,
$git diff
返回为空,而git status将会显示该文件在untracked files中。
而如果更改一git repo中原有文件,如sound/last.c
$ git diff
diff --git a/sound/last.c b/sound/last.c
index f0bb98780e70..bfa852c64419 100644
--- a/sound/last.c
+++ b/sound/last.c
@@ -7,6 +7,7 @@#include <linux/init.h>#include <sound/core.h>+//try git diffstatic int __init alsa_sound_last_init(void){struct snd_card *card;
会显示修改后文件的不同。实际上是在working directory中的文件和在index中的文件的不同。
运行git status会显示该文件在changes not staged for commit:
$ git status
On branch master
Your branch is up to date with 'origin/master'.Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified: sound/last.cno changes added to commit (use "git add" and/or "git commit -a")
运行git restore <file>会放弃该改变
$ git restore sound/last.c
$ git status
On branch master
Your branch is up to date with 'origin/master'.nothing to commit, working tree clean
再运行git status该改变已经放弃。
总结,(1) git reset 不会影响untracked files (2) git status 会列出untracked files, 但是.gitignore中规定的类型除外 (3)git clean -dfx会清除在.gitignore中的类型的文件, git clean -df不会。(4) git diff不会显示untracked files,只显示已经在git repo中已有文件的修改。
git reset, git status, git clean, .gitignore, git diff, git restore 的关系梳理相关推荐
- Git快速入门-git stash 暂存变更,git reset 撤销commit,git revert 回退远程版本库
Git快速入门系列文章 - Git快速入门-安装配置篇 - Git快速入门-常用命令之独奏篇 - Git快速入门-常用命令之交响乐篇 - Git快速入门-git stash 暂存变更,git rese ...
- git revert和git reset的区别
git revert 是撤销某次操作,此次操作之前的commit都会被保留 git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区 具体一个例子,假设有三个commit, git s ...
- git 远程仓库版本的回退以及git reset 几种常用方式记录
由于 github push 了两个比较潦草的commit, 自己很不满意,又不想重新开vpn进行上传,所以找了一下相关的教程. 最后研究了一下,原理为先在本地还原到你想要的commit,然后强制pu ...
- Git的撤销操作 git reset HEAD -- <file>
在项目中我们也经常会使用到撤销操作 使用这一节我们就讲一讲Git的撤销操作 撤销操作主要有如下几种 git commit --amend 撤销上一次提交 并讲暂存区文件重新提交 g ...
- git reset --hanrd撤回_一篇文章,全面掌握Git
版本控制 版本控制就是记录项目文件的历史变化.它为我们查阅日志,回退,协作等方面提供了有力的帮助. 版本控制一般分为集中化版本控制和分布式版本控制. 集中化主要的版本数据都保存服务端. 分布式版本数据 ...
- git如何查看缓存区文件内容_详解Git工作区、暂存区、历史记录区以及git reset、git revert、git checkout等撤销命令的区别...
一.可以将git简单的分为三个区域 1.工作区(working directory) 2.暂缓区(stage index) 3.历史记录区(history) 如图: 其中git ...
- git reset --hard HEAD 后恢复暂存区文件
git reset --hard HEAD 后恢复暂存区文件 1.参考资料 git reset–hard后恢复暂存区文件 git reset–hard后恢复暂存区(未提交)文件 关于git reset ...
- git reset简介
本文编辑整理自:http://guibin.iteye.com/blog/1014369 http://hi.baidu.com/tiger_tnt/blog/item/a0464ffa6a8115d ...
- Git使用 从入门到入土 收藏吃灰系列 (九) git reset 移除暂存区与版本回退
文章目录 一.前言 二.Git远程命令实践 2.1git reset 移除暂存区 2.2 git log+git reflog+git reset 版本回退 一.前言 参考安装Git 详细安装教程 参 ...
最新文章
- UVA 10954 Add All
- https://toonify.photos/ for Disney style
- leetcode37 --- solveSudoku(解数独)
- 【跃迁之路】【716天】程序员高效学习方法论探索系列(实验阶段473-2019.2.6)...
- 微信支付 body不是UTF-8编码以及中文签名错误的问题
- 读书笔记《React:引领未来的用户界面开发框架》
- 五笔字根表识别码图_五笔输入法口诀(五笔字根表快速记忆图)
- ipadpro编写java代码_iPad Pro变生产力工具,你还缺个轻量级浏览器端代码编辑器...
- android点击vcf文件,Android vcard使用示例,生成vcf文件
- Your Mac is infected with (3) Viruses!
- 制作WindowsServer2008镜像上传到OpenStack
- 漫谈并发编程:Actor模型
- Word中,页眉-编辑页眉中,“链接到前一节页眉”呈灰色,不可点击?
- ubuntu安装opencv viz模块
- 10分钟用Python制作恋爱日志!
- 51单片机 静态数码管显示
- redis配置文件样例(二)
- Blob开头视频链接如何下载
- python使用dohq-tfs操作TFS(Team Foundation Server)的Work Item
- 数据科学家定位和职业规划