目录

  • 一、下载
  • 二、基本概念
  • 三、本地使用
    • 3.1、仓库的创建
    • 3.2、修改、提交文件
    • 3.3、时空穿梭
      • 3.3.1、回顾历史:回到某个版本,不删除之后的版本
      • 3.3.2、改变历史:回到某个版本,删除之后的版本
    • 3.4、平行宇宙
      • 3.4.1、创建分支
      • 3.4.2、普通合并
      • 3.4.3、变基
      • 3.4.4、遴选
    • 3.5、一些常用的基本技巧
      • 3.5.1、合并版本
      • 3.5.2、最常见的异常:冲突
      • 3.5.3、忽略文件、不加入版本管理
      • 3.5.4、文件内容比较
  • 四、远程连接
  • 五、远程同步
  • 六、团队合作
  • Reference

一、下载

官网正常下载安装即可.

二、基本概念

简单介绍一下,SourceTree是和Github一样的一个基于Git的版本控制软件。其他基本概念:

三、本地使用

一个人开发,一台主机,不需要同步内容。

3.1、仓库的创建

先新建一个工作文件:workspace
再打开下载好的SourceTree软件:

点击Create,加入刚才新建的工作文件workspace:

再查看刚才的工作目录,发现新增隐藏文件:.git(这个文件存放了当前文件的各个版本文件的信息)。

到此本地仓库就创建完毕了。

3.2、修改、提交文件

比如在工作空间中创建文件:number.txt

这个时候SourceTree中就会出现变化

在number.txt前出现一个问号,表示当前这个新建的文件为未管理文件。
这个时候我们点击加号,即可将文件加入暂存区



这个过程其实就算将文件从文件目录(工作区)存入仓库中的暂存区。
同理点击后面的减号也可以将文件从仓库中的暂存区重新添加到文件目录中,这里就不演示了。

最后在描述中添加上当前操作的日志信息,再点击提交,即将这个文件从仓库中的暂存区添加到储存区。

并且可以通过历史查看提交的信息。文件前面的小圆圈(master)表示当前工作区的版本。

同样当修改当前版本文件的内容后,同样操作也可以再提交修改后的版本文件。

当修改了文件,软件左上方会出现一个待提交提醒,同样在未暂存(工作区 文件目录)中也会出现修改了的状态文件,点击这个文件,会在右边显示修改的内容。

同样添加到暂存区,编写日志信息,点击提交:


提交记录立即更新,空心圆前缀表示当前工作区版本文件。

到这文件提交操作结束。

3.3、时空穿梭

3.3.1、回顾历史:回到某个版本,不删除之后的版本

打开历史可以看到所有的历史版本,空心圆对应的版本是当前工作区的版本:

想要查看某个历史版本,只要点到对应的历史版本,再双击,弹出框

再点击确认,可以看到,当前工作区版本变成了相应的历史版本。注意这里的HEAD和前面的空心圆环的作用一样,都表示这个文件是当前工作区的版本文件。

打开文件也可以看到,变成了双击的历史版本:

到这里说明了我们已经成功的穿越到了某个历史版本,且不会改变这个历史版本之后的一些版本。

3.3.2、改变历史:回到某个版本,删除之后的版本

鼠标右键点击某个版本,选择【重置当前分支带此次提交】

然后选择混合合并或者强行合并。
混合合并是删除某个版本之后的所有版本,但是某个版本中仍然保留之后的版本数据,你可以在这进行修改;
强行合并是直接删除某个版本之后的所有版本,且某个版本中只保留这个版本的数据,也就是说这个版本之后的数据会永远消失,没用重来的机会。

所以这里建议是使用混合合并的方式,万一后悔了呢,也可以补救。

如混合合并:

仓库里已经删除了,但是默认工作区里还是保留的。

如果要在这个基础上继续修改就直接在工作区中修改即可,如果要在当前master的基础上继续修改,直接丢弃这个未暂存文件即可。

如图,当前文件内容未master版本,彻底删除了之后的所有版本。这个效果和强行合并的方式一样。

3.4、平行宇宙

在个时刻下,我们可能产生2个思路,为了让这两个思路写的版本不冲突,我们可以在master的基础上建立一个开发分支dev,当开发分支开发到一定的版本,测试的差不多了再合并到主分支master上。

3.4.1、创建分支

第一步点击上面分支按钮,输入分支名,点击创建分支。

这个时候他就会在master的同一级上建立一个dev分支

此时就可以对工作区进行编辑你的idea了,如图新建了一个文件,此时dev分支和master分支已经分开了:

3.4.2、普通合并


第一步切换到master版本,双击master版本即可:


第二步再点击上面的合并,选择要合并的分支版本,勾选下面两个选项,点击确定:

可以看到master变成了选择的分支版本,分支中的版本已经挪到了主分支上了,且创建了一个新的节点并提交合并:

3.4.3、变基

把开发dev分支变成主分支。

之前的操作和普通合并一样,只是在下面的选项添加上变基代替合并:

结果如下,会将开发分支dev的所有版本整体的全部复制到主分支master上(即将开发dev分支变成主分支master):

3.4.4、遴选

有时候并不想把开发分支dev的所有版本都加到master主分支上,就可以通过遴选的方式选择要的开发分支dev上的某些版本到master主分支上。

首先切换到master分支:

如图,加入我只想将开发dev分支上的apple那个版本加入到主分支master上,只需要右键apple分支再点击遴选(可以多选)。

弹出确认框,点击确定即可。

注意:当将分支上测试完毕的代码移动到master上,为了方便管理,可以将没用的分支代码删除,左侧对应分支右键删除即可。

3.5、一些常用的基本技巧

3.5.1、合并版本

有时候分枝上版本太多,太乱,需要对一些版本进行合并比如如下,假如我们要将apple和orange合并,点击fruit.txt再右键选择【交互式变基】:

3.5.2、最常见的异常:冲突


如图创建分支dev2,添加lemon,再合并到master上:

再在分支dev上添加coco:


此时如果将dev也合并到master会报错(合并冲突):

可以分支上产生了一个未提交的冲突,且在工作区间中也会显示这个冲突,这个时候最好的解决方法是手动的直接在工作区间中自己选择需要保存哪个分支的版本,删除不需要的版本。

手动保存好自己想要的版本:

再右键文件,选择【解决冲突】中的【标记未已解决】:

然后再正常的提交即可:

3.5.3、忽略文件、不加入版本管理

如图,如果我新建了一个文件,这个文件的内容几乎不变化,不希望他进行版本控制

那么我们可以右击这个文件选择忽略:
选择自己要忽略的类型,点击确定:


这个时候就会产生一个忽略文件.gitignore,里面保存着所有需要忽略的文件名:

再将忽略文件提交即可:


下次要忽略什么文件,可以直接在.gitignore中填写对应的文件名即可。

extra.txt 忽略workspace下所有叫extra.txt的文件(针对特定的文件)
*.dll workspace下忽略所有以dll结尾的文件(针对某一特定类型的文件)
/abc 忽略workspace/abc文件夹下的所有文件(针对某一文件夹下的所有文件)

3.5.4、文件内容比较

文件对比工具: Beyond Compare 中文版.

四、远程连接

未使用过,以后更新

五、远程同步

未使用过,以后更新

六、团队合作

未使用过,以后更新

Reference

BiliBili: Git/SourceTree版本管理.

【SourceTree】项目版本控制相关推荐

  1. 软件开发项目版本控制

    目录 软件开发项目版本控制 Tortoisesvn: Git 使用git优势 Git 的仓库 Git的常用命令: git 的使用: 二.配置 三.增加/删除文件 四.代码提交 五.分支 六.标签 七. ...

  2. git 移除项目版本控制_Git - 关于版本控制

    本章为 Git 入门. 我们从介绍版本控制工具的背景知识开始,然后讲解如何在你的系统上运行 Git,最后是关于如何设置 Git 以便开始工作. 通过本章的学习,你应该能了解为什么 Git 这么流行,为 ...

  3. 安装Sourcetree项目开发工具

    一.Sourcetree简介 Sourcetree是一个免费的可视化Git管理工具,可以操作任何Git库:同时支持Windows和Mac平台,界面简洁易用,极大的简化了开发者与代码库之间的Git操作方 ...

  4. Android Studio 项目版本控制由SVN切换到Git

    我的项目原来是用SVN进行版本控制的,后来想切换到Git Git仓库创建和连接 这一步是Git的相关知识不理不再多说,就是要先创建一个Git项目,得到一个远程的仓库地址,然后再通过类似如下的命令经本地 ...

  5. 利用GitGitHub对项目进行版本控制(图文详解)

    目录 目标 准备 创建一个Spring Boot项目(为了更贴近生产,我以上传项目为例.) 创建GitHub仓库 以HTTPS方式将项目上传至GitHub 以SSH方式将项目上传至GitHub 获取项 ...

  6. Git是什么?Mac安装Git和图形化程序SourceTree

    Git是什么?Git是目前最流行的软件开发过程中用来进行版本控制的工具,在多人合作项目中版本控制是很关键的一个环节!什么是版本控制,就是追踪文件的变更,它将什么时候.什么人更改了文件的什么内容都记录下 ...

  7. 总结XX餐饮收银项目中的得与失

    今天上午在米老师和坤哥主持,丁老师.李老师旁听的形式下,我们六期全体对前一个项目-XX餐饮收银系统项目中的得与失进行总结.讨论. 这个项目算是第一个在真实不确定需求的情况下进行的一次商业软件开发. 项 ...

  8. SpringBoot聚合项目总结

    文章目录 一.聚合项目架构 二.依赖传递图解 2.1. 常见场景 2.2. 企业场景 三.结构设计原则 3.1. 模块层次清晰 3.2. 模块之间耦合度低 3.3. 功能互不影响 3.4. 定位问题效 ...

  9. 面试指南-----项目自我介绍

    1.序 面试中自我介绍.项目是我们的重头戏,在面试二面.三面中都起到了至关重要的的作用.有可能因为一个点成功上岸,也有可能因为一句话而失之交臂.那么这一块究竟应该如何展现自我呢,下面由我来结合自己的案 ...

最新文章

  1. 2022-2028年中国地铁广告行业研究及前瞻分析报告
  2. Gym 101334F Feel Good
  3. Linux之CentOS安装composer与git
  4. SAP C4C里销售订单行项目为什么无法添加产品
  5. [css] 请举例说明css有哪些不可继承的属性?
  6. 基于Matlab的跨孔层析成像的最短路径法弯曲射线追踪(一)
  7. 罗永浩又接代言了!担任省钱顾问
  8. oracle 外部os授权,外部OS认证的过程
  9. .net实现调用本地exe等应用程序的办法总结
  10. MyEclipse插件不能安装原因
  11. 查找本库包括某字段的全部表
  12. github开源的流程-慕课网教程学习笔记
  13. Python语言核心编程
  14. java反射机制原理详解
  15. 管理学必读书籍排行榜
  16. python 天天向上求几天数_Python十题(第2课)
  17. WAMP/WNMP单独安装
  18. 汽车之外 这届2018CES盛会电视和语音助理也很亮眼 | CES
  19. Ubuntu18.04配置搭建基于Gazebo的虚拟仿真平台(Px4):无人机(UAV)、无人车等模拟实验平台
  20. 内存泄漏(Memory Leak )和内存溢出

热门文章

  1. Unity:锚点详解
  2. 傅里叶变换、拉普拉斯变换的应用
  3. Python三方库:RabbitMQ基本使用
  4. Java开源 ERP与客户管理-Sequoia ERP
  5. 20210630个人复盘
  6. C# 打印文档(word文档)
  7. 解决提示“npm audit fix“问题
  8. 致Emacs初学者+Emacs初学者必知必会
  9. 【Java学习路线之JavaWeb】Spring MVC框架入门教程
  10. counters.dat_使用sys.dm_os_performance_counters对SQL Server问题进行故障排除