功能块
比拟场景
人类卡卡、贝贝等宇航员终于等于登上了火星了。在经过不懈的探索之后,竟然在火星某处地表下发现了一座被遗弃的古城,现在他们收到了一个任务,探索起始点南站到目标地点北站之间可能有价值的地点:
从南站到北站的探索过程中,宇航员和地球的交流的指令格式是这样的:
- 从南站向前直走1000米,到达前面塌方地标1处。
- 从塌方地标1处左行3000米,到达坑洞1号。
- …
- 向前直走500米,到达目标地点。
由于环境的极度恶劣,宇航员只携带了简单的设备,可以记录发现的路径以及通过这个设备和地球通信。这个设备的叫做 git
,它有个图形界面操作软件,叫做 sourceTree
,含有来源追溯之意。
首先,宇航员需要从地球获取任务目标:
为了保证宇航员的安全和任务的顺序完成,只能操作指定的行动。
行动
丢弃
行动内容:宇航员将探索的路线上发现的没有探索价值的地点丢弃。
使用场景:丢弃下面发现的垃圾厂
提交
行动内容:宇航员确认探索的路线上发现的一系列有探索价值的地点。
使用场景 :贝贝发现 塌方地表2,并认可这个行动路线价值,因此将该路线 提交 到本地。此时,并没有推送给地球,地球并不知道新发现的地点。
推送
行动内容: 宇航员将探索发现的路径推送给地球。
使用场景:在贝贝到达 塌方地表2 的同时,卡卡到达了 塌方地表2 ,并且将提交的路线推送给地球。
获取
行动内容:从地球获取最新发现的所有行动路线。
使用场景:贝贝在推送自己的发现之前,先从地球 获取 了最新行动路线。
拉取
行动内容:执行获取操作,如果从地球获取的所有行动路线中,没有关于宇航员正在执行的行动路线的行动指令,结束行动;如果有关于当前行动路线的指令,那么那么宇航员需要执行最新行动。
使用场景:贝贝和卡卡当前都在 master 主行动路线上,而且贝贝将要推送给地球的内容和卡卡已推送的内容发生了冲突。
贝贝本地提交:
卡卡推送给地球的内容:
这个时候,贝贝如果执行推送,会被拒绝。贝贝这时应该执行 拉取操作。这时 sourceTree会提醒你发生了冲突了:
这个时候,你需要重新修改文件描述:
分支
行动内容 :从南站到北站新开辟的行动路线。
主要场景 :为了避免不同宇航员之间的行动路线冲突,最大化的利用资源,贝贝和卡卡都新开辟了一条新的路线,并且把 master命名为主路线。在新开辟的路线上,贝贝和卡卡分别发现了塌方地表3 和 塌方地表4 ,经过价值评估之后,贝贝和卡卡分别将新发现的地点推送给了地球。
贮藏
行动内容 :保存宇航员当前的发现待确认探索价值的地点。
主要场景 :贝贝在发现了 塌方地表5 和 塌方地表6 之后,联想到卡卡发现的 塌方地表4。直觉告诉他,塌方地表4 对于了解 塌方地表5 和 塌方地表6 很有必要,因此需要先搁置 塌方地表5 和 塌方地表6 的确认工作,先探索 塌方地表4。
合并
行动内容 :将行动路线A合并到行动路线B,即将行动路线A的探索工作在行动路线B上重新操作一次。
主要场景 :贝贝将卡卡推送的 卡卡路线1 合并到了 贝贝路线1 分支。注意,先要确认下当前所在的分支是 贝贝路线1, 在进行下面的合并操作。
在进行完合并操作(可能会有冲突,有冲突就本地进行冲突解决)后,将贮藏的东西重新应用:
经过一番探索,确认了 塌方地表5 和 塌方地表6 的价值,进行提交。
标签
行动内容 :给行动路线起一个更有意义的名字。
主要场景 : 塌方地表5 和 塌方地表6 的发现为人类带来了很大的经济利益,为了纪念这个特殊的行动,标记为 “贝贝一号”。
回滚
行动内容 :撤销 提交 的行动路线。
主要场景 :在贝贝进行 塌方地表5 和 塌方地表6 的时候,卡卡又对 塌方地表4 进行了又一番考察,认为 塌方地表4 没有价值,因此 回滚 上一次的 提交。
塌方地表4 文件已经被删除,推送给地球:
错误合并
主要场景 :为了培养下一代人才,这一次新手木木也被送上了火星,登陆点是贝贝路线,接替贝贝的工作。
由于不熟悉操作流程,木木都没有和贝贝确认卡卡的最新提交是否可以合并到当前的工作,直接进行了合并操作:
塌方地表4 被删除了。木木刚准备着把新的工作推送给地球,还好贝贝刚好发现,及时纠正了木木的工作。
这种错误一般也出现在把 master 分支往自己的开发分支上合并。不要把 master 的分支往开分分支上合并。
从任意过去开始
主要场景 :木木为了提醒自己,并没有 回滚 自己错误, 而是给当前的工作打了个 标签 :
然后, 从 贝贝发现塌方地表3 的地方重新 分支 ,重新开始贝贝的工作:
下面是木木重新开始的地方:
遴选
行动内容 :只选取有价值的内容到当前的工作路线中。
主要场景 :木木经过不懈的努力,终于连续有了两次重大的发现 木木发现塌方地表7和塌方地表8 和 木木发现塌方地表9和塌方地表10 。
贝贝发现, 木木发现塌方地表7和塌方地表8 的工作内容对自己当前的工作内容很有价值,而 木木发现塌方地表9和塌方地表10 暂时对自己并没有任何需要:
木木发现塌方地表7和塌方地表8 合并到贝贝的分支上了: