Pro Git阅读摘要

git 命令零零散散的用,是时候需要一本书系统了解了。

摘要

  • git 和其他版本控制系统最大的区别是对待数据的方式上。其他版本控制系统是基于单个文件做版本控制,git 是将数据看作小型文件系统的一组快照。

  • git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。已提交表示数据已经安全的保存再本地数据库中。已修改表示修改了文件,但还没有保存到数据库中。已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

  • git config 用户配置 git 外观和行为。变量存储在 3 个不同位置 1)/etc/gitconfig 针对系统上所有用户配置,采用参数–system。2)~/.gitconfig 或~/.config/git/config 针对当前用户配置,–global。3)仓库目录.git/config,针对仓库配置,git config 不加参数。变量高级覆盖低级,3 覆盖 1.

  • git 文件状态切换关系

  • git add,是个多功能命令,添加内容到下一次提交。可用于开始跟踪新文件、把已跟踪的文件放到暂存区,合并时把又冲突的文件标记为已解决状态。

  • git rm,–cached,将文件从 git 数据库中移除,在工作目录中保留文件。

  • 分支查看 git log –oneline –decorate –graph –all

  • 分支创建、切换、合并

  • git 工作流 主干开发,分支发布。主干发布,分支开发。

总结

看完书和阮一峰的几篇文章,解惑一下几点

  1. .git 是 git 项目的数据库,存放已提交信息。基于这个数据库,可以恢复或生产不同节点的文件。

  2. 分支是 git 和其他版本管理对比最大优势,源于提交对象的指针移动。

  3. 分支合并需要用到时再多练习

参考

https://git-scm.com/book/zh/v2
http://www.ruanyifeng.com/blog/2018/10/git-internals.html
http://www.ruanyifeng.com/blog/2015/08/git-use-process.html
http://www.ruanyifeng.com/blog/2015/12/git-workflow.html
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html