sourcetree的使用(克隆、提交、推送、获取、拉取、分支创建与合并、解决冲突、撤销回滚、回退版本)

目录

一、克隆

​二、提交和推送

三、获取和拉取

四、分支创建与合并

五、解决冲突

六、撤销回滚

七、回退版本


一、克隆

填入远程仓库地址,目标路径(本地存放路径),点击克隆。

二、提交和推送

git是分布式版本控制工具,存在着本地仓库和远程仓库,所以我们需要在本地工作副本中编辑,然后提交到本地仓库,最后推送到远程仓库。

提交到本地仓库,再推送到远程仓库

推送完成后,可以看到最新的版本里显示了master 和 origin/master,这表明本地master分支和远程master分支是同步的,在一个节点上。

三、获取和拉取

获取和拉取。获取是从远程仓库获取信息并同步至本地仓库,拉取是从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge。

获取后的结果

把远端master分支更新的提交同步到本地仓库

拉取后的结果

在实际工作中,我们只需要使用拉取,来更新远端仓库分支到本地分支就行

四、分支创建与合并

在工作中,我们新增一个功能需新增一个分支,这是为了保证原有的功能能正常使用,新增的功能不会影响原有功能的分支,等新增的功能测试通过后,我们只需把新增的分支合并到master分支上,然后上线。

新增一个develop分支

点击创建分支,可以看到多了一个develop分支,但是这个分支只存在于本地仓库。可以看到最新的日志记录节点上只有master , origin/master,develop,所以这个新分支是没有推送到远程仓库的。

然后点击推送到远端分支

将develop分支合并到master分支,先切换到master分支,将develop分支合并到master分支,最后推送到远程master分支

五、解决冲突

产生冲突的两种原因:

  • 不同分支下的合并:比如我们本地修改了文件1时,并推送到远端develop分支,接着我们将develop分支推送到test分支,如果test分支的文件1也有修改的话,那么就会产生冲突。
  • 同一个分支的拉取或推送:如果我们对文件1作出了修改,此时我们进行拉取或推送,如果远端文件1也有修改,那么本地和远端的文件不一致,那么就会产生冲突。

拉取时出现冲突

我们可以打开vscode解决冲突

合并冲突后提交并推送

六、撤销回滚

有时候我们提交了代码,但后悔了,需要回滚,那么我们可以使用撤销回滚操作。

注意:撤销回滚只能撤销回滚最近的一次提交,并不能回滚到历史某个提交

可以看到提交历史记录多了一个Revert 反向提交

例子:比如我们在master中回滚一次提交,回滚的提交里有func1功能,下次我们在develop分支中增加func4功能,这时develop分支是有func1功能的,再次将develop分支合并到master分支,这是master是不会自动把func1功能再次合并,那么我们这是就需要将master分支那次的回滚提交找出来,点击回滚提交,重新添加func1到master分支上。

master分支回滚了func1的功能代码

develop的func1功能代码还是存在,这时添加了func4功能代码,并合并到master分支

这时master只会合并func4的代码,之前回滚的func1代码并不会再次合并

解决:

找到之前回滚func1功能的记录

然后点击回滚提交,就可以了

七、回退版本

撤销回滚只能撤销回滚最新的提交记录,并不能回滚到某个历史版本。注意:回退指的是内容的回退,而不是提交记录的回退

如果我们想回退到这个提交

右键重置当前分支到此次提交, 使用模式选择 强行合并--丢弃所有改动过的工作副本,点击确定

对比本地仓库和远程仓库,红圈节点上面的两个提交

再次右键点击最新的提交历史记录,重置当前分支到此次提交,选择软合并

查看文件状态,可以看到修改的文件已经删除了回退版本之后提交的代码

然后点提交推送

注意:回退是不会删除回退版本之后的提交记录的,只是回退了内容。

  • 12
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值