GUI for git|SourceTree|入门基础


目录

  1. SourceTree简介
  2. SourceTree基本使用
  3. SourceTree&Git部分名词解释
  4. 相关连接推荐

一、SourceTree简介

  SourceTree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,拥有可视化界面,容易上手操作。同时它也是Mercurial和Subversion版本控制系统工具。支持创建、提交、clone、push、 pull 和merge等操作。

二、SourceTree基本使用

(以下以SourceTree For Mac V2.0.5.2中文版为例,托管平台以Github为例)

  1. 基本安装
    1.1.
    不建议在appstore直接搜索下载SourceTree,因为appstore里的版本已经十分老旧(好像是2012年更新的)。建议前往官网下载安
    装最新版,我这里也提供一个SourceTree for Mac V2.0.5.2的百度云的方便链接。 传送门→SourceTreeDownload
    1.2. 拖动安装,Launchpad中打开,continue,输入github账号按下一步完成即可。没有Github账号的朋友,也可以跳过本步骤完成安装

  2. 注册GitHub(已有Github账号的朋友请跳过本步骤)
    2.1. 打开Github官网 传送门→Github
    2.2. 填写必要的信息,点击sigh up for github

    Github Register 1

    2.3. 默认选中免费账号,点击绿色的Finish sign up即可

    Github Register 2
  3. 实践入门-创建仓库 clone&pull
    3.1. 创建仓库
    用我们刚才创建的账号登陆github,在欢迎页点击“+ New repository“创建我们的仓库

    Create Repository 1

    或点击右上角的“+”,然后再New repository亦可

    Create Repository 2

    3.2. 按照个人需要填写仓库名、仓库描述等,建议勾选“Initialize this repository with a README”(注意此处免费账户只能选择建立public(开源)仓库),填写完成后点击Create repository

    Create Repository 3

    3.3. 至此,我们的仓库已经创建成功。创建成功后,我们在页面的右下角找到链接,点击复制

    Copy Link

    3.4. 打开我们的SourceTree,点击:“+新仓库”,选择:“从URL克隆”

    Clone 1

    3.5. 粘贴我们的仓库链接至源URL,SourceTree会自动帮我们生成目标路径(本地仓库路径)以及名称,点击克隆

    Clone 2

    3.6. 等待数秒后,SourceTree会为我们自动打开我们刚才克隆的仓库,选择master选项,这里我们可以看到我们仓库里的所有文件

    MainPage

    3.7.
    接下来我们想要上传一个项目至我们的远程Github仓库内。我们点击右上角“在Finder”中显示。然后SourceTree会帮我们打开我们的本地
    仓库,我们将需要上传的项目复制到本地的Finder文件夹内,然后关闭文件夹,回到主页面。我们会发现工作副本出现了更改提示

    Change Notification

    3.8. 我们点击工作副本,然后我们发现我们刚才上传的文件都在未暂存文件当中,此时,我们勾选“未暂存文件”

    工作副本 1

    3.9. 发现我们的文件变成了已暂存文件。此时,我们可以输入更新信息,然后,点击提交按钮

    工作副本 2

    3.10.
    我们切换回master分支,会发现master分支以及推送(Push)按钮,都出现了更改提示。这表示SourceTree已经将我们刚才添加的文件
    成功提交到本地仓库,而本地仓库的内容则比远程仓库超前了一个版本。我们这个时候点击推送(Push)即可将本地仓库的内容同步至远程仓库。

    Branch Master

    3.11. 点击推送(push),等待片刻即可,我们重新登录github网站,会发现我们刚才本地仓库的文件已经成功推送到远程仓库

    Push
  4. 实践入门-参与开源 Fork&pull request
    (以下以 [https://github.com/octocat/Spoon-Knife] 举例)
    4.1. 首先打开上述页面,然后点击右上角“fork”按钮。fork意味着将他人的仓库复制到我们账号中。如果我们想要参与开源项目,首先要fork下别人的项目,然后在我们复制过来的仓库中,对别人的代码做修改。

    fork

    4.2. fork完之后,我们用上文提到的方法,将自己账号中的[Spoon-Knife]仓库克隆(clone)到本机SourceTree中,并在稍作更改后,推送(push)到自己账号的远程仓库
     4.2.1 在SourceTree中建立新仓库,并复制URL

    clone Spoon-Knife

     4.2.2 在本地仓库中稍作更改(如图我新建了一个Test)

    Example

     4.2.3 通过上文方法推送(Push),登陆Github,进入Spoon-Knife仓库,发现test已经上传到我们账号的远程仓库Spoon-Knife当中

    Success

    4.3. 上传完后,我们点击Github branch旁的绿色按钮

    Pull Request 1

    4.4. 之后我们会进入一个Compare页面,这个页面用于比较作者仓库与我们仓库的文件的不同。Base fork:指的是作者仓库目录地址;Head fork:指的是我们账号中fork后所产生的仓库地址。我们点击Create pull request即可

    Compare

    4.5. 然后我们会进入一个Pull
    Request界面,在这里,我们可以输入自己更改的原因/更改的内容。这里写的文字会显示给源代码作者,如果作者接受了我们的推送请求(pull
    request)后,我们的代码将会上传到源代码作者的仓库内,成功为开源做贡献。如果作者拒绝了我们的推送请求(pull
    request)后,我们的代码将不会上传到源代码作者的仓库内。

    Pull Request 2

    4.6. 我们点击Create Pull Request即可,系统将自动跳转到等待回复的页面,这里会显示作者是否接受我们的代码更改。

    Pull Request 3

    三、SourceTree&Git部分名词解释

    1. 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库
    2. 提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
    3. 检出(checkout):切换不同分支
    4. 添加(add):添加文件到暂存区
    5. 移除(remove):移除文件至暂存区
    6. 暂存(git stash):保存工作现场
    7. 重置(reset):回到最近添加(add)/提交(commit)状态
    8. 合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
    9. 抓取(fetch):从远程仓库获取信息并同步至本地仓库
    10. 拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 pull=fetch+merge
    11. 推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
    12. 分支(branch):创建/修改/删除分枝
    13. 标签(tag):给项目增添标签
    14. 工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝
    15. 终端(terminal):可以输入git命令行

四、相关链接推荐

  1. →Github help for mac
  2. →Github help for win
  3. →极客学院Git教学视频

sourceTree初识的更多相关文章

  1. Android动画效果之初识Property Animation(属性动画)

    前言: 前面两篇介绍了Android的Tween Animation(补间动画) Android动画效果之Tween Animation(补间动画).Frame Animation(逐帧动画)Andr ...

  2. 初识Hadoop

    第一部分:              初识Hadoop 一.             谁说大象不能跳舞 业务数据越来越多,用关系型数据库来存储和处理数据越来越感觉吃力,一个查询或者一个导出,要执行很长 ...

  3. python学习笔记(基础四:模块初识、pyc和PyCodeObject是什么)

    一.模块初识(一) 模块,也叫库.库有标准库第三方库. 注意事项:文件名不能和导入的模块名相同 1. sys模块 import sys print(sys.path) #打印环境变量 print(sy ...

  4. 初识IOS,Label控件的应用。

    初识IOS,Label控件的应用. // // ViewController.m // Gua.test // // Created by 郭美男 on 16/5/31. // Copyright © ...

  5. UI篇(初识君面)

    我们的APP要想吸引用户,就要把UI(脸蛋)搞漂亮一点.毕竟好的外貌是增进人际关系的第一步,我们程序员看到一个APP时,第一眼就是看这个软件的功能,不去关心界面是否漂亮,看到好的程序会说"我 ...

  6. Python导出Excel为Lua/Json/Xml实例教程(一):初识Python

    Python导出Excel为Lua/Json/Xml实例教程(一):初识Python 相关链接: Python导出Excel为Lua/Json/Xml实例教程(一):初识Python Python导出 ...

  7. 关于如何使用sourcetree将本地项目提交到远端github总结?

    使用sourcetree将本地项目提交到github里,目前来说还是很流行的,我也是听说好玩,所以来琢磨了一下,从环境搭建到配置好,差不多用了一下午加一晚上的时间,有点虐心,好吧,废话不多说,介绍一下 ...

  8. 初识SpringMvc

    初识SpringMvc springMvc简介:SpringMVC也叫Spring Web mvc,属于表现层的框架.Spring MVC是Spring框架的一部分,是在Spring3.0后发布的 s ...

  9. 初识redis数据类型

    初识redis数据类型 1.String(字符串) string是redis最基本的类型,一个key对应一个value. string类型是二进制安全的.意思是redis的string可以包含任何数据 ...

随机推荐

  1. Win32 WriteFile and ReadFile

    HANDLE WINAPI CreateFile( __in LPCTSTR lpFileName, // 文件路径 __in DWORD dwDesiredAccess, // 访问权限,GENER ...

  2. python面对对象编程----1:BlackJack(21点)

    昨天读完了<Mastering Object-oriented Python>的第一部分,做一些总结. 首先,第一部分总过八章,名字叫Pythonic Classes via Specia ...

  3. “The SQL Server license agreenment cannot be located for the selected edition.”MSSQL安装问题

    今天老邹又来吐槽了.今天不和IE7较劲了.说点别的吧. 我呢什么软件都喜欢装最新版的,这部刚出来windows 8.1就赶紧装上了,随后就用上了vs2013.前天看到新闻说微软已经发布了sql ser ...

  4. ASP.NET 文本编辑器使用(CKEditor)与上传图片

    CKEditor是什么 CKEidtor是一个在线富文本编辑器,可以将让用户所见即所得的获得编辑在线文本,编辑器或自动将用户编辑的文字格式转换成html代码. 方法一.在ASP.NET工程中添加CKE ...

  5. IEnumerable中的 Any方法

    IEnumerable类中的 Any方法,表示集合中有任何一元素满足条件,返回就true , 该方法有两个重载 1. 不带任何参数,表示集合中有元素 2. 参入一个 Func<TSource, ...

  6. redis php

    redis php 学习1.连接$redis = new redis();$result = $redis->connect('127.0.0.1',6379); 2.set$redis = n ...

  7. asp.net 字符帮助类 类型转换类

    /// <summary> /// 字符帮助类 /// </summary> public class StringHelper { private static readon ...

  8. 【行为型】Interpreter模式

    解释器模式意图为给定的语言定义其文法表示,同时定义该文法表示的一套解释器来解释语言中的句子.该模式说的简单通俗点,其主要用途是用来解释用的.至于解释什么,则要看具体的上下文环境.我们可以为一个表达式专 ...

  9. IE10的bug?disabled button如何触发事件

    最近碰到一个问题,IE10下的,貌似是个bug,求助! 问题表现为:在内部有dom元素的情况下,disabled状态的button会因为子元素的mouseover产生事件冒泡而触发,也就是说,disa ...

  10. oldboy第三天学习

    一.上课体验及感受 额第三天了.身心疲惫.上课一脸懵逼,是最标准的诠释.三个星期的疲惫感,更深了.很难,但是还要继续 写好作业.吸收知识. 二.三级列表 menu = { '北京':{ '海淀':{ ...