ios学习笔记4--sourceTree使用详解

来源:互联网 发布:佳能单反如何测光 知乎 编辑:程序博客网 时间:2024/06/07 05:09

代码管理方式无非是git和svn两种。本人一直使用svn管理代码,比如:Cornerstone、IntelliJ IDEA等,后面开发新项目,大佬们开始使用git方式管理代码,推荐的工具就是sourceTree。

一、git基础知识介绍

  • git简介
    git是一种开源的分布式版本管理工具、是比较流行的代码管理工具

  • svn和git对比
    a、管理方式
    svn是集中式管理、git是分布式管理
    b、分支管理
    svn分支使用比较笨拙、git分支使用相对轻松
    c、网络限制
    svn必须在联网情况下才能工作
    git支持本地版本控制
    d、管理文件数量
    svn会在每一个目录放置一个.svn
    git只会在根目录放置一个.git

二、 soureTree使用

(1) soureTree下载地址
http://download.csdn.net/detail/huoshes/9821985

(2) 刚开始使用soureTree,可以免费使用20天,20天以后就需要进行注册了,这个需要到官方网站进行注册,生成一个license文件、然后直接导入license文件即可
这里写图片描述
点击导入许可证就可以了、如果感觉麻烦、可以在github上搜索souretree,里面有别人上传的许可证,可以直接下载使用

(3) 从仓库中下载代码、直接克隆仓库代码到本地

这里写图片描述

输入仓库地址、点击高级选项、选择分支

这里写图片描述

注意:这里不要勾选递归子模块、否则会出现提交代码出错<原因不知,有高手知道、请赐教>

(4)经过上述操作步骤、在本地会保存一份与库上一样的代码、

这里写图片描述

此时,双击本地代码、你可以对代码进行一系列操作

这里写图片描述

四、sourceTree具体操作
这里主要分为3部分

  • 代码仓库
  • 工具栏
  • 代码提交记录

(1)代码仓库

文件状态:展示的是本地代码、本地代码被改动后、工作副本会提示相应的改动数量

分支:本地代码是从哪个分支上下载下来的、可以有多个

远端:服务器上所有分支结构

(2)工具栏<至关重要>

提交:当本地代码有改动并且你想提交到服务器上时,可以点击提交按钮。不过这里的提交按钮并不是真正的提交到服务器上,只有再点击推送按钮后,才是真正的提交到服务器上,这里只是上传到本地仓库。

检出:相当于是重新下载代码,这里可以下载不同分支代码、下载一个分支的不同版本代码,不过要注意的是你工作副本里面的代码会被覆盖掉、所以有必要的话,记得保存原有代码。由于这里容易出现切换分支以后,推送到服务器容易出错,这里会特别介绍一下。

  • 场景一:由于某种原因,你需要回退当前分支版本

    这里写图片描述

    以上是库上代码,现在回退到test1.html版本到代码

    a、在代码提交记录栏,选择你要回退的版本、点击检出

    这里写图片描述

    此时,会弹出一个警告
    这里写图片描述

    或者以下警告框:
    这里写图片描述

    这两个警告框的意思大致相同:你现在创造的是一个与服务器隔离的分支,说白了,这就是个本地分支,在提交代码的时候,会出现错误,提示远程服务器上并没有这个分支,造成无法正常提交代码

    这里写图片描述

    以上操作好比是将远程分支的代码下载到本地,然后二者没有任何关联。

    解决上述问题的办法就是创建一个本地分支与远程分支关联、有以下两种方法:

  • 在终端上输入指令,进入存放本地代码的文件夹,执行指令:

    git checkout -b newBranchName

    注意这里创建的newBranchName不能与已经存在的分支名称相同、查看已有分支名称的指令:

    git branch -a

  • 直接点击工具栏中的分支按钮
    这里写图片描述

    注意这里的分支名称不能够重复

    备注:如果你仅仅是为了回退版本、查看旧代码、这里不需要进行以上操作。
    参考网址:
    http://blog.csdn.net/futureer/article/details/48039781

    这里分支合并到主线上,可以通过在服务器端进行。这里以github合并代码为例、简单进行图形演示:
    这里写图片描述
    ---------图1-------
    这里写图片描述
    ---------图2-------
    这里写图片描述
    ---------图3-------
    这里写图片描述
    ---------图4-------

重置:回到最近一次add或者commit的状态,此操作目的是保持本地代码与服务器代码一致<本地已做修改未提交代码会被覆盖、慎用>

暂存:将代码保存至缓存区

添加:将当前本地修改和增加的文件添加到暂存区,经过这一步才可以进行提交推送

移除:将当前本地修改和增加的文件从暂存区移除

添加/删除:这个功能暂时未用到

抓取:从远端获取最新版本到本地、但是不会自动合并

拉取:从远端获取最新版本到本地、会自动合并

推送:本地代码上传到远端、但是必须先点击提交按钮

分支:创建或者删除分支

合并:分支的合并

标签:给每个版本定义个标签

在Finder中显示:点击此按钮,可以直接找到本地代码

Git工作流:一般master是总的主枝,每个人开发的时候都自己定义一个dev分支是自己的主枝,当没有问题的时候提交到master,然后每个人自己开发新功能的时候创建一个feature功能分支,修改BUG时要单独拿出一个BUG分支

终端:点击后,进入命令行模式

(3)代码提交记录
查看什么人提交了代码,这里不详细介绍了。

四、sourceTree使用技巧

a、问题:本地修改了代码还没有提交、此时有别人提交了代码、此时提交代码出问题

解决方案:这个时候,你需要做的是,将修改的代码提交到本地<缓存到本地>,再拉取代码,否则会提示错误、不能正常下载代码。

b、问题:本地代码做了修改,但是在sourceTree中未暂存文件中没有提示

解决方案:这个文件可能被你忽略了,此时点击sourceTree中的偏好设置、然后点击Git、点击全局忽略列表旁边的编辑文件按钮、看文件中是否包含你修改的文件,有的话删除即可。详细如下图:
这里写图片描述

这里写图片描述

c、问题:本地代码修改后,拉取远程库代码,造成冲突、此时重新下载代码,将本地代码合并进去,效率太低、得不偿失。

解决方案:此时为了能够解决冲突,需要借助比较工具进行比对。比较好用的比较工具,个人推荐Beyond Compare,这里需要自己进行配置。

点击sourceTree中的偏好设置、选择比较界面
这里写图片描述

这里需要输入比较命令、合并命令、参数;
1、比较命令和合并命令
点击Beyond Compare的安装命令行工具
这里写图片描述

在比较命令和合并命令中输入红色框中的路径

2、参数
这里写图片描述

第一个参数输入框:$$LOCAL $REMOTE
第二个参数输入框:$LOCAL $REMOTE $BASE $MERGED
注意:上述字符之间要有空格

0 0
原创粉丝点击