今天发现git dff命令不好使,查了一些资料才发现原来在提交到master区之前的改动才能用git diff 显示出改动过程。
git存储原理
只有在gti commit之前提交才是有效的
- 未被添加的程序是就是
untracked
状态 - 只有在
commit
之前使用diff才是有效的
管理修改
git跟踪并管理的是修改,而非文件
如果在add之后对文件又进行了修改,
commit
提交的只有进入缓存区的文件,而非再次修改的文件
修改文件 > git add >第二次修改 > git commit > 提交的是第一次修改的文件
修改文件 > git add > 第二次修改 > git add > git commit >提交的是第二次修改的文件
总结:如果不add到缓存区就不回加入到commit中。
使用git diff HEAD -- file.file
查看修改的文件与版本库的文件对比
git diff HEAD -- readme.txt
$ git diff HEAD -- readme.txt
diff --git a/readme.txt b/readme.txt
index 76d770f..a9c5755 100644
--- a/readme.txt
+++ b/readme.txt
@@ -1,4 +1,4 @@
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
-Git tracks changes.
+Git tracks changes of files.
撤销修改
- 在未提交到工作暂存区时使用
git checkout -- file
命令撤销修改
$ git checkout -- readme.txt
- 在提交到暂存区使用
git reset HEAD file
命令将文件从暂存区撤销到工作区,文件内容不变。
$ git reset HEAD file
- 提交到master区,使用
git reset --hard HEAD^
命令,即版本回退命令
删除文件
- 使用
rm
命令删除工作区文件
$ rm file
-
git rm file
将删除文件的事提交到暂存区
$ git rm file
- 再未提交到暂存区时,可以使用git checkout 命令还原
网友评论