之前一直用的TeamFoundation,近期要代码迁移到Gitee,组内使用SourceTree进行代码管理。故将近期的学习内容做个总结。就我个人来说,不管啥技术基本上都是现学现用,网上看教程也都是看的最精简的版本。恨不能一篇文章就读懂整个框架,一句话就弄明白几万行代码的设计思想。实际后来认识到一句至理名言:
“慢即是快” 一一曾国藩
我意识到,越耐心的总结一篇文章,越慢的梳理一些逻辑,发现自己的“总进度”反而变快了。
本篇主要分析SourceTree的图谱。
观察分支图谱可以选择仅查看当前分支还是查看所有分支,仅查看当前分支可以只关心某一条分支的更新记录。查看所有分支可以观察到仓库的所有分支及所有分支的更新记录。二者都有针对的使用场景。
空心红色圈
表示本地分支所在节点。双击左侧master,切换到master分支。
双击左侧“版本一:剪贴板方式”,切换到该分支。
版本一:剪贴板方式
”分支。develop
”分支。master
"分支。观察分支图谱可以选择仅查看当前分支还是查看所有分支,仅查看当前分支可以只关心某一条分支的更新记录。查看所有分支可以观察到仓库的所有分支及所有分支的更新记录。二者都有针对的使用场景。
因为我这套代码是以develop
为主线衍生的,所以即使切换到当前分支,其他分支也基本都能观察到。常规做法是以master
为主线。
当前分支模式观察图谱可以先看主线分支,图谱只有一条竖线的,观察主线的更改很清晰。
Git是分布式代码仓储管理系统。可以理解为CS架构,本地仓库对应客户端,远程仓库对应服务端。多人并行开发一套软件时,每个人都可以把仓库检出checkout
到本机,在本地修改之后再更新到服务端。
SourceTree获取远程分支可以双击分支,弹出对话框,选择检出即可。下图矩形框住的地方就是远程服务端所维护的仓库。总共四个分支:develop、HEAD、master、版本一:剪贴板方式。注意到远程分支四个而我们本地分支仅有三个,这是怎么回事?
双击HEAD尝试检出,发现报错,”fatal: 'HEAD' is not a valid branch name
“。实际上因为HEAD类似于链表数据结构的头结点,它不存管数据,仅是指向当前的分支节点。我们切换到哪个分支,HEAD就指向哪个分支。
抛开分布式不谈,假设程序员只有一个,显然本地与远程仓库应该是实时保持一致的。程序员多了之后不可能做到每个人的开发内容,开发进度都保持一致,但是目标是要尽可能的一致。也就是Git提交代码要及时,拉取代码也要及时。本地与远程除了正在开发的内容其余都要尽可能保持一致。