美文网首页iOS开发技巧iosiOS 好文
GUI for git|SourceTree|入门基础

GUI for git|SourceTree|入门基础

作者: SeaHub | 来源:发表于2015-08-11 15:39 被阅读134440次

    -*--_

    目录

    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]
      关于转载:欢迎转载,但未经作者同意,必须在文章中给出原文连接。

    -*--_

    相关文章

      网友评论

      • Freerain:sourtree 确实极大程度上提高了工作效率,谢谢楼主讲得如此详细
      • 4de471a10273:mac版的,日了狗
      • kingzv:你好,好像只看到了“暂存(git stash)”,知道git stash pop怎么做?
      • 4261558825a8:感谢楼主。
      • 棍武中原:楼主,3.7步没法做到3.8步。跪求赐教
      • 棍武中原:我们将需要上传的项目复制到本地的Finder文件夹内楼主,这句诗什么意思?我把项目拖进去,工作副本是没有反应的
      • ChardXu:我用SourceTree提交显示:
        Pushing to https://github.com/MyName/FirstProject.git
        fatal: unable to access 'https://github.com/MyName/FirstProject.git/': Server aborted the SSL handshake.
        请问是怎么回事啊?怎么处理呢?
      • 秋夜已凉:简直就是棒棒哒
      • 3674d0183b56:好文,有空再好好看看
      • 天堂秀:很有用 svn转用sourcetree确实需要些时间来习惯

      • 20ff852bfa5e:原来用SVN的 第一次用git 和 sourceTree,您的教程简洁,明了,实践一次就全会了,非常感谢
      • c41beec52c37:Finder...一直在看这是什么 我怎么没有,突然发现是win下的explore
      • 千寻爱妈妈:写的非常详细,nice
      • codeing小牛:写的很详细:blush:
      • 487274e1810d:感谢楼主的分享,
      • 11ff55616f4a:好文章学习了
      • afe7ce451791:使用source tree 将版本重置到某个版本会影响远程仓库不?
      • lin_xiaohuan:这个人是不是抄袭你的?
        http://www.jianshu.com/p/68970a606a05#
      • hhgvg:私有的没有吗
      • mundane:在github上, 能不能在不fork别人仓库的情况下将别人的项目clone到本地
      • 梵高的老巫婆:3.7这一步文件状态没有提示怎么破
      • 先生_吕:楼主威武,我也看见这东西懵逼了,来取经,谢谢分享
      • e54b69cb7854: 谢谢分享! :grin:
      • Chan丶:希望 source tree 合并着中讲一下!
      • OnePi:赞一个!
      • ae657405bffd:楼主,有没有试过window的?毕竟,window下安装什么的,居然需要账户。然而账户需要在官网下载,然而,官网需要翻墙,我也是跪了。
      • Lision:简洁明了
      • 林檎君:谢谢您的教程~简单明了~
      • 梓茜DiannaWong:很好,谢谢作者~~赞一个
      • SpringFighting:如果我提交代码,提错分支了怎么办 :pray:
      • GalaxyJM:同问,为什么我吧项目的文件夹添加到本地仓库,sourcetree不提示文件,而单个文件却可以
      • _韩小妖:很不错 :+1:
      • f0604cc606e1:写得很好,学习到了 :smile:
      • AT19:写的很好
      • aa43db0d9e3d:请问,为什么我吧项目的文件夹添加到本地仓库,sourcetree不提示文件,而单个文件却可以
      • 刘宇航iOS:超过100M的文件怎么解决
        SeaHub:@刘_ 一样按照上述流程做即可~
      • 安勒个安:最新版的sourcetree支持中英文切换,不过这是我看到的最好理解的使用指南~
        SeaHub:@安了个安 谢谢
      • 刘小天:如果我想要将提交的信息按照模版方式进行输入并且提交能做到吗?
        SeaHub:@刘小天 不好意思,这方面我不太了解,建议看一下文档
      • chad_it:已收藏,BaQiDeNiCheng请接受我的推送请求
        SeaHub:@不要把世界让给你鄙视的人 那个库是github官方建的:flushed:
      • 舟阳:不错,讲解的很详细,赞
        SeaHub:@TonyShng 谢谢
      • fdbb385132c5:很好,找到使用说明书了:)
        SeaHub:@冯小强 谢谢
      • johnmuu:更新版本后有些许出入,感觉楼主分享.
        SeaHub:@johnmuu 谢谢
      • 纪宝宝:get√ 写的很好,谢谢楼主
        SeaHub:@纪宝宝 谢谢
      • 8cb5c1009f57:为什么我把代码拖到本地仓库没有提示改变
        奔跑的小菜菜:@ee52c78882b3 对 这个我也遇到了 那有木有什么办法能代码从所在的git仓库里摘出来 摘成一个普通的project 有木有尝试
        ee52c78882b3:代码本身就是个git仓库 就不会提示
        SeaHub:@NSLogholdout 这个。。我没有遇到过,不好意思了
      • c2106abf7e14:最新版的V2.2.2 怎么没有中文啊
        SeaHub:@iOS路人甲 据我所知,目前只有2.0.2有中文版
      • 南栀倾寒:添加和移除应该是 添加到和缓冲区而不是暂存区
        iOS_Developer1:缓存区和暂存区有什么区别?
        0a2494ab9e1d:sdasdasd
        SeaHub:@南栀倾寒 已修正,谢谢
      • mengzheng:自己折腾了三个小时没解决的问题。终于在这里找到答案了。O(∩_∩)O谢谢
        0a2494ab9e1d:@SeaHub :heart_eyes:
        和奇谷朴:很nice的一篇文章! :smile:
        SeaHub:@Rivermz 谢谢支持,共同学习~

      本文标题:GUI for git|SourceTree|入门基础

      本文链接:https://www.haomeiwen.com/subject/gaeiqttx.html