git 进阶一
January 21, 2018
最近总是在沉迷游戏,而且笔记本太老了,开枪太卡。 这样下去太影响学习了。 决定组个台式机,顺畅的打游戏。
工作进度保存与恢复 #
这个功能主要针对的是工作区和暂存区,版本库是不需要保存的,因为他本身就是一种保存进度。
-
使用
git stash
命令会将工作区和暂存区的状态进行保存。 其完整版的命令是这样的:git stash [save [--patch] [-k | --[no-] keep-index] [-q | --quiet] [<message>] ]
其中,-k
参数会保留当前的暂存区,默认会重置暂存区。 这个命令会将工作区和暂存区的内容都重置到上一次提交的状态! 这个也很好理解,按照我们模块化开发的思路,当我们写某个东西写到一半的时候,突然需要中断,然后去写另外一个东西,这个时候,不能把这个一半的东西放到代码中,所以会被重置会上一个提交。 -
使用
git stash list
命令可以查看已经保存的工作进度。 -
使用
git stash pop [--index] [<stash>]
可以恢复进度,--index
参数指暂存区也恢复,否则只恢复工作区。stash
参数就是list中的选项,可以定点恢复,否则恢复最近的一次。 -
git stash clear
-
git stash drop
delete the newest one. -
git stash apply
恢复但是不删除。类似于pop
; -
git stash branch <branch>
基于进度创建分支。
需要注意的是,还没有被跟踪的文件是没有办法被保存的。
Git 忽略追踪 #
很多文件诸如编译出来的文件,我们不应该放在git仓库中,这个时候要避免这类文件被追踪到,我们可以写一个文档来标注这些文件。
在仓库的目录下写一个.gitignore
的文件,文件每一行写一条规则,对应匹配到的文件就会被忽略。这个文件的有效范围是包含其子目录的。
gitignore 语法 #
#
开始或空行都会被忽略- 可以使用通配符,
*
,?
,[abc]
等。 - 以
/
开头,表示要忽略的文件在本目录中,而不是在子目录中 - 以
/
结尾,表示忽略整个文件夹, 不以/
结尾的,同名的文件和文件夹都忽略。 - 以
!
开头表示本文件或目录不忽略,尽管之前有相关规则匹配到。
如果我们将这个文件加入到版本库中就会被版本库共享,给这个文件自己加一个忽略规则就不会被加入到版本库。
同时,需要注意的是! 已经被追踪的文件无法被这个文件忽略,只有未被追踪的文件才可以。