SourceTree详细使用教程

博客传送门

1.下载并注册SourceTree

注册sourcetree对应的账号,就可以免费使用SourceTree.网不太好的话可以用蓝灯(免费)

蓝灯下载地址1

蓝灯下载地址2

sourcetree下载地址

我是用github账户关联的,当然你也可以用另外两种账户

2.SourceTree详细操作步骤

账户操作

创建本地和远程仓库

  • 创建本地仓库 : 点击创建本地仓库按钮,选择仓库地址,填写仓库名称,类型选git

  • 创建远程仓库 : 将同时创建远程仓库打钩,即可同时创建本地和远程仓库

克隆代码以及检出分支

  • 克隆代码

    1. 在自己的github项目中,复制url地址,然后克隆项目
    2. 在检出分支中,选择想要检出的分支.我这里检出的不是master分支.

  • 项目克隆不下来

      检查url是否正确,若url正确,网络也正常,则有可能你将要克隆的项目是私有库,而你本地没有登录对应的私有库账号或者没有对应权限的公钥.
    复制代码

  • 解决方案:


检查账号是否正确或者本地是否有对应的私有库项目公钥或者自己的权限是否足够下载此项目


因为我自己的放在github上的是开源项目,克隆的时候不需要公钥,工作的电脑本地装公司项目公钥就行了,自己电脑配的是码云私有库,所以也是一个公钥,不需要多公钥管理.多公钥管理可以参考:
复制代码

码云配置公钥 多个公钥管理

  • 检出分支

      通常项目是三种分支类型:
      master主分支,稳定的版本;
      develop分支,日常开发分支,每个项目版本稳定之后,合并到master分支;
      fix分支,线上紧急bug.从master创建fix分支,修复测试通过后,合并到master主分支.	
    复制代码

    如果上一步你检出的是master分支,可以在origin中,检出其他分支到本地

暂存、丢弃、移除文件

![image](http://upload-images.jianshu.io/upload_images/2835144-72eaeb8c909dc10b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
复制代码
  • 暂存文件 : 打钩未暂存文件,会将文件放在已暂存文件框中

  • 丢弃文件 : 放弃此更改项

    最新版SourceTree中,已暂存文件框,只有移除文件选项,没有丢弃文件选项;未暂存文件框中有移除文件和丢弃文件选项

  • 移除文件

    ###不是放弃此更改项,而是删除此文件,删除此文件,删除此文件(重要的事情说三遍)

    比如你在一个txt文件里面增加了两句话,用丢弃文件,就只是删除你刚才增加的那两句话;如果选择移除文件,那就是说把这个txt文件删除了,所以要慎重选择移除文件.

本地提交以及拉取、推送

  • 本地提交(commit) : 提交已暂存文件框中的文件,并在下面的输入框中填写本次提交的描述,然后点提交按钮 ###本地提交之后,先拉取,后推送,养成良好的习惯 虽说SourceTree中不拉取,直接推送,工具会检测如果代码冲突会让你修改冲突之后再提交,不过我没试过,这样的习惯不好;假设养成这种坏习惯,用SVN的话,就会直接覆盖的,那就很酸爽了,当然版本是可以回退的

  • 拉取 : 点拉取按钮,把项目中这个分支的远程仓库代码拉到本地合并处理

  • 推送 : 点击推送按钮,把本地这个分支合并后的代码,推送到远程仓库

    第一次用的话,推送可能会让你输入你的github账户名和密码

拉取与抓取+变&^基(rebase)的区别

  • 拉取 : 把远程仓库的代码拉下来,与你本地提交的代码进行合并,合并到你的本地仓库

抓取 : 仅仅是把远程仓库的代码拉下来

变&^基(rebase) : 将抓取到的代码与本地仓库进行合并,且变&^基修改了提交历史,使得提交记录保持线性(美观).git变&^基细说

我个人认为没必要为了线性提交记录美观而刻意去变&^基.从结果来看,抓取+变&^基和拉取没什么区别,甚至如果遇到冲突,解决的时候也不会因为变&^基而少解决冲突,就是提交线性(美观).而且拉取一步操作,抓取加+变&^基两步操作,还多一步操作.

分支与合并

  • 分支

    选择想要创建分支的地方,建立分支

    目前创建的只是本地分支,如果想把该分支也放在远程仓库,则需要推送并且在当前分支上打对勾,远程仓库就会有这个分支了

  • 合并

    如上例子,将AAA分支合并到master分支:双击master切换分支,当前是master分支,单机AAA分支,右键"合并AAA至master"

    打钩包括被合并提交的信息内容,就是在AAA分支提交时.提交的描述也会体现到master记录中

  • 删除分支

打钩删除远程分支,就会把远程仓库的分支也删掉;如果删除有问题,删不掉,再打钩强制删除来强制删除分支

冲突与解决

  1. 多人修改同一文件,提交代码或合并会造成冲突;
  2. 提示文件冲突,去文件状态中找带感叹号的文件,在Find中显示;打开文件,cmd+f,搜索"<<<",我当前是master分支,B&%B&%B分支合并进来造成的冲突,所以"<<<< HEAD"和"===="中是同一文件我修改的部分;"====="和">>>>>B&%B&%B"中间的是B&%B&%B分支修改的内容;
  3. 根据实际情况删掉一部分或者都保留,然后删除"<<<<< HEAD"、"======="、">>>>>>>B&%B&%B",如果同一文件有多处冲突,同样这么修改;
  4. 解决所有冲突后,选中冲突文件,标记为冲突已解决,然后本地提交,再推送到远程仓库

代码回退(回gun)以及将master重置到这次提交的区别

  • 回退(回gun) : 撤销此次提交的更改
  • 将master重置到这次提交 : 将版本变为这个选中版本
  • 区别 :
    1. A->B->C版本,回退(回gun)操作B的话,会变成A->C,相当于B的操作被撤销了;
    2. 重置这次提交操作B,会将最新版本重置为B,即A->B;
    3. 重置到这次提交,只能操作提交到远程仓库的代码,且不可操作最新版本代码;
    4. 回退(回gun)不仅可以回退(回gun)本地提交代码,也可以回退(回gun)提交到远程仓库的代码

添加标签以及显示远程服务器、在Finder中显示

  • 添加标签 : 切换到正确分支,选中想要添加标签的记录,然后右键选择分支,填写标签名称,打钩推送标签,推送标签到远程仓库;移除标签同样操作,点删除标签,选择对应的标签,删除

  • 其他操作
    1. 显示远程服务器 : 浏览器打开该项目地址
    2. 在Find中显示 : 会跳转到本地项目地址

基本上以上操作就够用了,至于遴选、高级自定义配置文件,我也没尝试过.如果有描述有错误的地方,欢迎指出错误.

转载于:https://juejin.im/post/5b21d750e51d450688136ad3

你可能感兴趣的:(SourceTree详细使用教程)