【Git】Sourcetree的初始化与使用
慕雪年华

[TOC]

前言

还在用小乌龟管理你的git本地代码吗?

为何不来尝试一下,这款界面更加直观的git可视化工具!

sorcetree官网👉https://www.sourcetreeapp.com/

别看到英文官网就跑了,软件本身是中文界面

image

注:本博文只讲述sourcetree初始化方式,并不讨论其与TortoiseGit的功能强弱

什么?你还不知道git是啥?

那还不赶快点击这篇博客了解一二!👇

实习生 Git 不熟练,还没脸去问是种什么体验…


1.初始化

下载安装以后,你会看到以下界面

若不需要用bitbucket,选择跳过即可

image

第二步,sourcetree会让你下载这两个工具

  • 如果你的电脑里已经有了,它能检测出来安装位置
  • 如果你的电脑里没有这两个工具,它会自动帮你下载

image

第三步,它会让你填写你的用户名和邮箱

建议这里和你的gitee或github上的用户名/邮箱同步!

image

填写好后,点击下一步,会弹出这个界面

选择“否”即可

image

2.克隆仓库

初始化完成后,会变成以下界面

  • 源路径:填写你的gitee/github仓库链接
  • 目标路径:选择一个本地的空文件夹,注意路径不要有中文
  • 名字:填写一个会在Sourcetree里显示的仓库名字

image

那么问题来了,要怎么找到你的仓库链接呢?👇

image

image

填写完毕后,sourcetree会开始下载,并在你选择的路径下创建本地仓库的文件夹

image

如果你有多个远程仓库,点击+号重复上述步骤即可

image

image

添加已有本地仓库

已有本地仓库的情况下,可直接点击Add添加

sourcetree会检测出来这是一个git仓库

image

3.提交代码

回到主界面,这里会出现你的仓库push历史,以及操作的日期

如果你的本地仓库里面做出了更改,和网络仓库不一致的时候,软件内会在第一行显示有未提交的更改

image

点击文件状态,这里会显示你本地仓库的那些文件做出了更改

  • 未暂存文件:本地文件做出了更改,但并没有确认
  • 已暂存文件:保存了本地文件的副本,等待push到远程仓库
  • 底部白框:填写push说明

image

依照下图操作即可

如果你不选择“立即推送变更,就需要在左上角的“推送”选项内进行二次操作,才会上传到远程仓库

image

如果你之前没有使用过git,在这一步点击提交之后,会弹出一个框让你填写你的账号密码

填写对应网络仓库(gitee/github)的账号密码即可!

  • 用户名:填写注册邮箱

由于本人已经填写过,且不知为何无法在账户/web凭据中找到并删除它,故无法复现这一步

所以我帮同学也弄了一个gitee账户,顺便嫖来了这张填写账户密码的截图

image

填写完账户密码后,sourcetree就开始上传你的代码了!

如果上传错误,这里会显示对于的git报错信息,根据报错信息百度查找解决方案即可!

image

上传成功后回到History界面,可以看到我们最新的提交

image

刷新网络仓库页面,可以看到推送成功了!

image

这2个月的使用下来,只要sourcetree在上传的时候没有报错,那代码是铁定上传成功了。

无需打开网络仓库再确认一下,还是挺方便的!

如果你的本地仓库并没有做出更改,打开文件状态栏目的时候会显示“没有什么可提交的”

image


4.回滚提交

git最重要的一个功能,就是保存我们代码的历史版本

如果你最新push的代码中写了一堆bug,或者不小心删掉了一些代码,就可以在git里面找到你的历史版本

在sourcetree的主界面中,右键一个之前的提交信息,可以看到两个选项

image

这两个选项的区别,简单描述如下:

  • 回滚:将改动的代码提交到本地仓库,但未推送到远端仓库的时候
  • 重置当前分支到此次提交:将改动的代码提交到本地仓库后,并已推送到远端仓库的时候

具体的区别及操作方法,大家可以参考这篇博客👇

sourceTree回滚提交和重置当前分支到此次提交的区别

重置分支演示

在这里我简单演示一次重置分支的方法

假设我们不小心删除了本地文件里面的代码

比如想复制其他代码到此文件,却在复制的时候ctrl+a全选,覆盖了之前的代码

image

而在提交代码的时候,我们又忘记检查,直接上传到了远程仓库

image

image

这时候,就可以选择我们上一次的push,选择重置当前分支到此次提交

这里会出现3个选项,我们可以选择最后一个“强行合并”

image

确认后,打开之前被我们删除了内容的代码文件,发现删除了的代码已经回来了!

image

由于之前的更改已经提交到了远程桌面,sourcetree发现本地仓库落后于远程仓库,需要我们进行拉取操作

但拉取之后,我们错误的更改就又回来了,这并非我们的目的

这时候可以在souretree工具-选项中开启git的强制推送

注:强制推送具有风险,建议提前备份分支内容

image

选择我们重置的分支,并选择推送

image

勾选上左下角的强制推送

image

sourcetree会开始上传,上传完毕后,可以看到,之前的那次推送已经消失了!

image

打开gitee检查一下,可以看到这里显示了“强制推送”

image

找到我们之前更改过的那个文件,发现它已经回到了我们删除之前的内容

image

我们的目的也就完美达成了!

还是建议大家上传的时候多多检查,之前我就干过一次这样的蠢事。

第二次编写那个文件的时候,才发现之前的代码无了。还好可以回退版本!


结语

个人理解,Sourcetree相比TortoiseGit,最大的优点就是它的界面更美观!

还有另外一个我很喜欢的点:使用sourcetree不会让你的右键菜单多一堆选项!

使用什么样的工具是大家各自的选择,一起进步才是我们共同的目的!加油😋

如果有说的不明白的地方,欢迎在评论区提出!