更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇

原文链接:
这一篇写完基本Git的操作就图解完了 , 如果想深入了解Git , 这里可以推荐一些Git的硬核书籍:【精通Git】、【GitHub入门与实践】、【Git权威指南】、【Git版本控制管理】、【GitHub实践】 。
这些都是一些关于Git的比较好的书籍 , 有兴趣的可以可看一看 , 网上也有很多电子书 。 闲话不多说 , 下面就开始我们的正题 。
日志Git查看日志前面有提到过可以通过git log命令进行查看:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
git log可以查看你「提交的时间、提交的作者、以及提交的id」都可以查到 , 如果你觉得查询的信息太多 , 可以加上参数--pretty=oneline , 只会显示版本号和提交时的备注信息 。
如果你想查最近的几条历史记录 , 可以通过加参数"-n"的形式制定查询几条记录 , 历史记录是「按照操作的时间」进行排序的:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
还可以通过加参数" --graph" , 以图形化的形式展示历史记录 , 方便与查看历史记录与分支的关系:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
还可以加参数"-p" , 可以查看每一个commit操作更改的文件的哪一行 , 加参数"-stat"查看哪些文件改动了 , 进行简要的统计 。 更加详细的git log参数可以查看命令帮助 。
Git查看历史记录的另一个命令是git reflog , 它可以查看「所有分支的所有操作记录 , 包括已经删除的commit记录和reset记录」 。
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
衍合(rebase)分支管理中有「合并」和「衍合」操作 , 合并操作在在第二年篇的分支章节已经详细讲解过了 , 就来讲解一下衍合操作:git rebase操作 。
假如有两位开发人员Tom和Jerry , Tom和Jerry都把远程的master分支签出到本地 , 此时当前的Tom和Jerry本地都是只有一条master分支:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
此时Tom开发人员 , 创建一条新的分支branch , 并且将新的分支branch推向远程仓库(git push origin branch):
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
此时Tom本地仓库和远程仓库的分支保持一致 , 分支如下图所示:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
Tom在自己的分支branch上开发自己的模块 , 假如开发期间Tom进行了「两次」的提交 , 最后Tom本地的分支形成如下所示:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
也可以通过git log查看两次提交的记录:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
若是 , 此时Tom开发人员准备把自己的branch的分支推向远程仓库 , 但是 , Jerry在此之前已经在master提交了自己的开发代码 , 所以master分支相比之前记录 , 已经向前推进了一个版本 。
所以此时Tom想提交 , 必须先更新一下自己的本地分支:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图
Tom中通过git log命令可以查看到Jerry的提交记录情况 , 说明此时分支已经与远程仓库同步:
更新了!深入浅出图解Git,入门到精通(保姆级教程)第三篇文章插图


推荐阅读