本轮防控需要居家办公,深刻体会了一把及时同步代码的重要性。回想频繁使用的 git 指令、不断修改的代码,提供图形化界面的 sourcetree 就显得更方便了些许,因此提上使用日程。
sourcetree 下载地址:https://www.sourcetreeapp.com/
说明:使用 git 这个工具分为两个部分,一个是图形化界面,还有一个是为他提供服务的 git 工具本身。
当我们安装 sourcetree 时候,会把这俩部分都一起安装上。
工作区、仓库、远端会有复杂的交互关系,sourcetree 图形化界面可以将他们有效串联起来。
下面按照步骤就可以将软件使用明白啦~
新建本地仓库
①. 在电脑上,新建文件夹;
②. 打开 sourcetree->新建->创建本地仓库;
③. 路径填写,第一步创建的文件夹;
④. 此时目标路径下的文件夹,将会被 git 进行跟踪管理。
注意目前,仅是本地使用,此时还未共享到云端。
值得了解的一点,电脑本地的文件夹下,会有个.git 的隐藏文件,未来文件修改等信息,都会记录于此,我们无需过多关注这些细节,所以这个文件夹一般默认情况下都是隐藏的。
.git 所在的目录,就可以叫做工作区。
提交文件
①. 工作目录下,新建文件 A,
②. sourcetree 中,文件 A 会出现在未暂存文件中
③. 勾选文件,自动移动到已暂存文件中
④. 提交按钮,提交到仓库,进行版本管理。
工作列表
所有的提交都会形成一个节点展示在图表列中,有意思的是,可双击历史节点可回到历史版本,而此时,空心节点、HEAD 标签提示大家,工作区已经切换到了指定版本。
重置到历史提交
当对于修改的内容后悔了,可在指定版本上,右键重置。那经常使用的模式有两种
①. 混合合并:回到历史,但修改的内容也不会丢,在未暂存区域内,对于我们还有考虑的余地
②. 强行合并:丢弃所有的本地改动,使用指定版本内容,将本地直接覆盖
创建新分支
点击分支-->弹出对话框-->新分支命名-->创建分支
完成后,可见 dev 和 master 这两个标签在最新节点一同出现,说明此时的新分支与 master 内容一致。
在新分支上动工
简单的,我们在新分支添加新文件,修改提交,如「提交文件」那样。
值得注意的是:
①. 双击可切换分支。
②. 当空心节点指向哪个分支,就是当前的工作空间,此时对文件的修改提交,都会默认在本分支上。
移植到 master 主分支
想移植到哪个分支,就切换到哪个分支,进行合并。
如我们想将 dev 分支合并到 master,那么就双击 master 分支,点击操作栏合并按钮。
弹出对话框,提示我们要合并什么样的内容,选中给出的轨迹节点,就可以进行合并提交。
对话框下方会几个常用选项。
①. 当选择:无论是否可以快进更新都创建新的提交,简单的理解这是一个打包的过程。
将 dev 分支的几个提交节点,打包作为一次修改挪到了 master 分支,并且在 master 主分支创建了一个新的节点。此时会自动生成一个描述叫:merge branch...
仔细观察可发现,标签的颜色和节点颜色是一一对应的。
②. 当增加选项:用变基代替合并(警告:请确保您还没有推送您的变更)
将 dev 分支的每个节点分别挪到 master 分支。
所谓变基,就是改变基准,之前 master 是基准,现在以 dev 分支为新基准,所以图表中的主干分支也会将 dev 的节点信息展示出来。效果如下图所示
提到变基,还有一种实现方式:切换到 master 分支,选中要挪动的节点内容,右键,选择变基,也可实现变基方式合并分支。
整合节点
在 dev 分支中,多次提交可合并成一次提交,来实现对提交内容的压缩。
右键节点,选择交互式变基,弹出对话框,即可看到之后节点的信息,用以前的提交来 squash,意思就是将节点压缩成一次提交。
使用场景:对于节点太多,图表中不简洁,可使用次功能。
冲突
①. 两个开发分支,修改了同一个文件,其中一个已经合并到主干分 支,另一个再去合并就会出现冲突。
②. 当在弹出 “合并冲突” 弹窗后,点击确定,在 sourctree 面板中可查看文件状态,此时为冲突状态。
③. 点击提交,可查看冲突原因
④. 双击冲突文件,查看冲突位置,手动修改代码
⑤. 修改完成后,在 sourcetree 中,右键冲突文件,标记为已解决,即可提交成功
忽略文件
实际工作中还会遇到下边的情况,有些文件,不想被追踪,那么可以右键选择忽略,后期就不会被展示在暂存区。
当设置完成后,未暂存区会出现个.gitignore 的隐藏文件,为配置文件,里边会具体描述本仓库不被跟踪的内容。
当把.gitignore 文件提交后,那么在本地更改忽略文件的内容,将不会在文件状态中展示。
那么关于.gitignore 文件的写法有三种:
①. 精确文件名 -- 针对特定的文件
②. *.conf (--针对特定类型的文件,会忽略所有带有此后缀的文件)
③. /hulue (--针对特定目录下的,会忽略此文件夹下的所有文件)
远端关联 - 推送
云端平台我们自己动手搭建,市面上比较常见的服务供应商有,GitHub、CODING、码云、GitLab。
目前本地已经对项目做好了管理,那么想要在网络上进行同步,需要进行设置。
配置好仓库后,可使用推送功能,将本地推送到云端,这样在云端就拥有了和本地相同的文件内容。
远端关联 - 拉取
工作终端发生变更后,如由办公室的电脑换回到家里的电脑,可通过拉取方式,将云端同步下来,进行修改操作。
而如何拉取呢,首先找到云端仓库位置,复制 https 的链接;然后在 sourcetree 中新建仓库,采取克隆方式,填写 https 链接;这样就可完成同步。
之后按需修改后,亦可按照前面「提交」步骤,提到云端。
通过本篇的使用方式总结,大家在 sourcetree 全流程的使用上,心里应该有了底气。
最后给大家推荐一个 git 学习的方法,在线练习 git 命令行:https://learngitbranching.js.org