Git初探笔记02
1、查看已暂存的文件在下次提交时的变化
可以用 git diff --cached
命令
git diff --cached 查看已经暂存起来的变化:(--staged 和 --cached 是同义词)
将修改或新添加的文件放到暂存区后,就可以提交了,使用git commit命令,此时会默认打开系统指定的文本编辑器来要求输入【提交信息】,你还可以使用git commit -m "你的提交说明",来一次性完成提交操作。
提交时记录的是放在暂存区域的快照。 任何还未暂存的仍然保持已修改状态,可以在下次提交时纳入版本管理。 每一次运行提交操作,都是对你项目作一次快照,以后可以回到这个状态,或者进行比较。
每次提交前把文件状态变为暂存状态(即将文件放到暂存区)略显繁琐,此时可以再提交的时候使用-a选项,git commit -a命令,即可将跟踪过的所有文件一并放到暂存区,然后一起提交。
2、删除git上的文件
- 目中经常碰到,一开始上传本地项目到git时,没有再.gitignore文件进行过滤,导致把很多没必要进行管理的文件也一起提交到git中,这时候想要从git删除某些文件或目录(不让git进行跟踪),但是不删除本地文件
- 此时可以使用git rm -[f] --cached 文件名:
- 其中-f选项是对于已经在暂存区的文件,进行强制删除
- 你还可以使用git rm -[r][f] 文件或目录,如:
$ git rm log/\*.log
- 注意到星号
*
之前的反斜杠\
, 因为 Git 有它自己的文件模式扩展匹配方式,所以我们不用 shell 来帮忙展开。 此命令删除log/
目录下扩展名为.log
的所有文件。 类似的比如:
$ git rm \*~
- 该命令为删除以
~
结尾的所有文件。 - 其中选项-r是针对目录进行递归删除,即如果删除的是目录,如$ git rm -r .idea/,此时将删除该目录以及目录下所有文件
3、查看提交日志
$ git log --pretty=oneline:
该命令将提交日志格式化成一行显示(每次提交信息用一行进行展示)
ca82a6dff817ec66f44342007202690a93763949 changed the version number
085bb3bcb608e1e8451d4b2432f8ecbe6306e7e7 removed unnecessary test
a11bef06a3f659402fe7563abf99ad00de2209e6 first commit
绿色部分为SHA-1校验和,蓝色部分提交描述信息
4、修改/撤销提交操作
- 在任何一个阶段,你都有可能想要撤消某些操作。 这里,我们将会学习几个撤消你所做修改的基本工具。 注意,有些撤消操作是不可逆的。 这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一。
- 有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有
--amend
选项的提交命令尝试重新提交:
$ git commit --amend
- 这个命令会将暂存区中的文件提交。 如果自上次提交以来你还未做任何修改(例如,在上次提交后马上执行了此命令),那么快照会保持不变,而你所修改的只是提交信息。
- 文本编辑器启动后,可以看到之前的提交信息。 编辑后保存会覆盖原来的提交信息。
- 例如,你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:
$ git commit -m 'initial commit'
$ git add forgotten_file
$ git commit --amend
- 最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。