原文链接:http://www.jianshu.com/p/be9f0484af9d

目录

  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教学视频

上文均为个人拙见,欢迎大家讨论交流
作者:[SeaHub]
作者邮箱:[seahub@163.com]
关于转载:欢迎转载,但未经作者同意,必须在文章中给出原文连接。

文/SeaHub(简书作者)
原文链接:http://www.jianshu.com/p/be9f0484af9d
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

GUI for git|SourceTree|入门基础的更多相关文章

  1. 【Git项目管理】git新手入门——基础教程

    一.Git工作流程 直接上手看图,了解Git工具的工作流程: 以上包括一些简单而常用的命令,但是先不关心这些,先来了解下面这4个专有名词. Workspace:工作区 Index / Stage:暂存 ...

  2. GIT 从入门到放弃大整理

    跟着廖雪峰学 GIT  http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 GUI f ...

  3. Git 快速入门--Git 基础

    Git 快速入门 Git 基础 那么,简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余. 在开始学习 G ...

  4. Git入门基础详情教程

    前言 写了一篇文章<一篇文章了解Github和Git教程>还觉得不错,继续写了<为了Github默默付出,我想了解你>,那么继续写Git 基础知识. Git 官网:https: ...

  5. C++ STL编程轻松入门基础

    C++ STL编程轻松入门基础 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL 1.2 追根溯源:STL的历史 1.3 千丝万缕的联系 1.4 STL的不同实现版本 2 牛刀小试 ...

  6. 分布式进阶(十六)Zookeeper入门基础

    Zookeeper入门基础 前言 在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置为EPHEMERAL,那么当 ...

  7. HBase入门基础教程之单机模式与伪分布式模式安装(转)

    原文链接:HBase入门基础教程 在本篇文章中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建HBase伪分布式环境的前提是我们已经搭建好了Had ...

  8. HBase入门基础教程 HBase之单机模式与伪分布式模式安装

    在本篇文章中,我们将介绍Hbase的单机模式安装与伪分布式的安装方式,以及通过浏览器查看Hbase的用户界面.搭建HBase伪分布式环境的前提是我们已经搭建好了Hadoop完全分布式环境,搭建Hado ...

  9. Git原理入门简析

    为了获得更好的阅读体验,建议访问原地址:传送门 前言: 之前听过公司大佬分享过 Git 原理之后就想来自己总结一下,最近一忙起来就拖得久了,本来想塞更多的干货,但是不喜欢拖太久,所以先出一版足够入门的 ...

随机推荐

  1. POJ 1547

    #include<iostream> #include<string> using namespace std; int main() { int length; int hi ...

  2. sematext

    https://sematext.atlassian.net/wiki/display/PUBLOGSENE/Syslog

  3. 理解Node.js事件驱动编程

    Node.js现在非常活跃,相关生态社区已经超过Lua(基本上比较知名的功能都有nodejs模块实现). 但是我们为何要使用Node.Js?相比传统的webserver服务模式,nodejs有什么优点 ...

  4. 使用git整体流程

    一.git提交代码走meger请求的整体流程 工作中使用git推代码时,如果走merge请求,那么也就是说拉代码时拉公共代码库的代码,但是提交时需要先提交到自己的代码库,然后在gitlab上提交mer ...

  5. 简单验证码识别 tessnet2

    今天突然间对识别验证码感兴趣,于是网上搜了一下 最简单的是引用tessnet2.dll,然后通过它来识别,代码如下 private void button1_Click(object sender, ...

  6. win7 安装Redis

    1.下载Redis的压缩包 https://github.com/dmajkic/redis/downloads 我下载的是redis-2.4.5-win32-win64.zip 下载完后将其解压放在 ...

  7. awk过滤统计不重复的行

    awk以‘\t’为分隔符区分列 cat logs | grep IconsendRedirect | grep 1752 | awk -F'\t' '{print $8}'| wc -l awk过滤统 ...

  8. JavaScript事件冒泡和事件委托

    JavaScript事件冒泡和事件委托 付建宇 - 2 条评论 接触JavaScript不久,学的东西也不是特别多.小雨就是习惯把平时学到的东西拿出来分享.一方面加强自己的印象,一方面可以让自己的经验 ...

  9. Win8.1安装VirtualSVN Server发生service visualSVN Server failed to start解决办法

    Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in Event Viewer for mo ...

  10. Java实现Mysql数据导入导出

    package com.backup; import java.io.BufferedReader;import java.io.FileInputStream;import java.io.File ...