git status # 显示哪些文件在暂存区
git diff # 显示暂存库所有的更改
git diff filename # 比较这个文件和最后保存的那个
git diff directory # 显示这个目录里文件的更改
下面的这个代码框,是解释git输出的信息
diff --git a/report.txt b/report.txt #表示被用来产生输出的命令还有,a,b只是占位符,代表第一个版本和第二个版本
index e713b17..4c0742a 100644 # 一个索引行显示git内部改变数据库的键
--- a/report.txt # ---表示删除的行前缀
+++ b/report.txt # 表示添加的行前缀
@@ -1,4 +1,5 @@ # @@开始的行通过数字对(开始行,行数)表示发生改变的地方,这里表示第一行开始,一开始是四行,后来变成五行。
-# Seasonal Dental Surgeries 2017-18 # 这几行是逐行列出发生的改变,-表示删除的内容,+表示增加的内容
+# Seasonal Dental Surgeries (2017) 2017-18
+# TODO: write new summary
保存更改的步骤(to staging area)
- 添加一个或多个文件到暂存区(staging area)
- 提交暂存区里的所有文件
git add filename # 把文件提交到暂存区
git diff -r HEAD # -r 表示和特定的修正版比较 HEAD参数表示最近的一次提交
git diff -r HEAD path/to/file # 将结果限制为一个文件(file)或者目录(directory),并且后面的路径是相对路径(相对于你现在所处的位置)
题外话——unix编辑器(nano)
nano filename # 打开文件,如果文件不存在则创建它
- 方向键移动光标,退格键 删除
- CTRL+K:删除一行
- CTRL+U:取消删除一行
- CTRL+O:保存文件(O表示output)
- CTRL+X:退出编辑器
提交更改(from staging area)
git commit # 保存更改,把暂存区的所有内容保存成一个单元,如果想要撤销只能撤销所有更改。
git commit -m "some message in quotes" # -m 及后面的字符串表示,在提交的同时,git要求输入的日记信息,作用类似注释,告诉后来人为什么提交更改
git commit --amend - m "new message" # 这个表示提交错误的日记信息后,用--amend修改信息。
默认情况下,git会启动一个编辑器用来给你写log message,上面是为了简单,用-m写一行
如果仅仅用git commit 命令,不在后面添加简短的log message,git会打开一个文本编辑器。如下
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is up-to-date with 'origin/master'.
#
# Changes to be committed:
# modified: skynet.R
#
#开头都是注释(此时都是注释不能保存),提示你应该做什么,你修改了什么文件。然后你要把log message写到编辑器的最顶部,尽可能多,尽可能详细的写。
查看存储库历史
git log # 看整个库的历史日志
git log path # path 是到一个文件或者一个目录的路径,表示只查看这个文件或者目录的日志。
并且git会自动分页,先让第一页填满屏幕,然后空格翻页,按q退出
文件的日志记录,文件内容的更改情况;目录的日志,记录目录内文件添加或删除的时间。
ps:在datacamp上学的,只有第一章免费