SourceTree使用指南:从克隆到回退版本的完整教程
SourceTree使用指南:从克隆到回退版本的完整教程
SourceTree是一款非常流行的Git可视化工具,它可以帮助开发者更直观地管理代码仓库。本文将详细介绍SourceTree的基本使用方法,包括克隆、提交、推送、获取、拉取、分支创建与合并、解决冲突、撤销回滚和回退版本等功能。
一、克隆
克隆是将远程仓库复制到本地的过程。在SourceTree中,只需填入远程仓库地址和目标路径(本地存放路径),然后点击克隆即可完成操作。
二、提交和推送
Git是分布式版本控制工具,存在着本地仓库和远程仓库。因此,我们需要在本地工作副本中编辑代码,然后提交到本地仓库,最后推送到远程仓库。
提交到本地仓库后,再推送到远程仓库。推送完成后,可以看到最新的版本里显示了master
和origin/master
,这表明本地master
分支和远程master
分支是同步的,在一个节点上。
三、获取和拉取
获取是从远程仓库获取信息并同步至本地仓库,而拉取则是从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即pull=fetch+merge
。
获取后的结果是将远端master
分支更新的提交同步到本地仓库。拉取后的结果则是直接将远端分支的更新合并到当前分支。
在实际工作中,我们只需要使用拉取操作来更新远端仓库分支到本地分支。
四、分支创建与合并
在工作中,我们新增一个功能时需要新增一个分支,这是为了保证原有的功能能正常使用,新增的功能不会影响原有功能的分支。等新增的功能测试通过后,我们只需把新增的分支合并到master
分支上,然后上线。
新增一个develop
分支,点击创建分支后,可以看到多了一个develop
分支,但是这个分支只存在于本地仓库。要将这个分支推送到远程仓库,需要点击推送到远端分支。
将develop
分支合并到master
分支时,先切换到master
分支,然后将develop
分支合并到master
分支,最后推送到远程master
分支。
五、解决冲突
产生冲突主要有两种原因:
- 不同分支下的合并:比如我们本地修改了文件1时,并推送到远端
develop
分支,接着我们将develop
分支推送到test
分支,如果test
分支的文件1也有修改的话,那么就会产生冲突。 - 同一个分支的拉取或推送:如果我们对文件1作出了修改,此时我们进行拉取或推送,如果远端文件1也有修改,那么本地和远端的文件不一致,那么就会产生冲突。
当拉取时出现冲突时,可以打开VSCode等代码编辑器来解决冲突。解决冲突后,需要提交并推送。
六、撤销回滚
有时候我们提交了代码,但后悔了,需要回滚,那么我们可以使用撤销回滚操作。需要注意的是,撤销回滚只能撤销回滚最近的一次提交,并不能回滚到历史某个提交。
例如,在master
分支中回滚一次提交,回滚的提交里有func1
功能。下次在develop
分支中增加func4
功能时,develop
分支是有func1
功能的。再次将develop
分支合并到master
分支时,master
分支是不会自动把func1
功能再次合并。这时就需要将master
分支那次的回滚提交找出来,点击回滚提交,重新添加func1
到master
分支上。
七、回退版本
撤销回滚只能撤销回滚最新的提交记录,并不能回滚到某个历史版本。需要注意的是,回退指的是内容的回退,而不是提交记录的回退。
如果我们想回退到某个特定的提交,可以右键选择“重置当前分支到此次提交”。使用模式可以选择“强行合并--丢弃所有改动过的工作副本”。点击确定后,对比本地仓库和远程仓库,可以看到回退版本之后的提交记录。
再次右键点击最新的提交历史记录,选择“重置当前分支到此次提交”,选择“软合并”。查看文件状态,可以看到修改的文件已经删除了回退版本之后的代码。然后点提交推送。
需要注意的是,回退是不会删除回退版本之后的提交记录的,只是回退了内容。