git 进阶一

最近总是在沉迷游戏,而且笔记本太老了,开枪太卡。
这样下去太影响学习了。
决定组个台式机,顺畅的打游戏。

工作进度保存与恢复

这个功能主要针对的是工作区和暂存区,版本库是不需要保存的,因为他本身就是一种保存进度。

  • 使用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]等。
  • /开头,表示要忽略的文件在本目录中,而不是在子目录中
  • /结尾,表示忽略整个文件夹, 不以/结尾的,同名的文件和文件夹都忽略。
  • 开头表示本文件或目录不忽略,尽管之前有相关规则匹配到。

如果我们将这个文件加入到版本库中就会被版本库共享,给这个文件自己加一个忽略规则就不会被加入到版本库。

同时,需要注意的是!
已经被追踪的文件无法被这个文件忽略,只有未被追踪的文件才可以。

Git 里程碑

Talk is not cheap.