Github是一个流行的代码管理网站,同时也是全球最大的同性交友网站(滑稽)。Github网页上你可以自由地托管自己的项目,也可以fork别人的项目过来玩耍,非常之方便,今天笔者就来介绍一下github桌面版程序上,针对常见需求的那些相关使用方法,此处以Mac版本的为例,win上的基本类似。

而学习Github桌面版的过程,其实也是在加深了解Git技术的各方各面,所以git小白也可以通过Github桌面版的使用来入门git哟!

接下来,我会通过github中比较基本的概念包括clone,branch,push,pull等来入手,一一介绍Github Desktop的使用方法。

将仓库中的代码下载到本地 (Clone Github Project to Local Repository)

首先,当你不想每次都打开github网站去对你的项目文件做编辑时,你可以选择把它们down下来到本地磁盘上。而从此以后,你在本地上对项目文件的任何修改都会被记录下来,并且只要通过github桌面程序就可以把这些修改同步到对应的github网站仓库上,非常方便。

  1. 假设我们在github上有一个名为Tech-Learning-Notes的项目。

  1. 接下来,打开github桌面版,点击左上角的“+”按钮,选择clone,你可以看到你在github上存放的(尚未down到本地的)项目列表。选中Tech-Learning-Notes项目,选择clone Repository,然后选择本地路径以存放项目文件夹。

  1. 稍等一会儿,待clone完成后,到之前选择的对应路径下,就可以看到你的项目文件夹了。

当然,你可以随意挪动文件夹的位置,因为github桌面程序已经锁定了文件夹本身,不会因为你挪动了文件夹的位置与之前保存的位置不一样就失去关联。而“锁定”其实是通过项目文件夹下的".git"文件夹实现的,所以大家不要轻易动这个文件夹哟~

然后就可以愉快地在本地随意编辑你的项目了。

在本地更新网页端的改变 (pull)

有一次,你的项目合作者在页面那边提交了一个新文件,名为【Friend's change】,于是你很感兴趣,想把新文件同步到本地,很简单:点击【Repository】-【Pull】,接着,你就可以看到本地仓库里出现了合作者提交的新文件。

在本地提交新的代码版本到仓库 (push local changes to remote repository)

问题来了,我们在本地对我们的项目做了一些新的修改,比如改了一些文件的源代码,新增了和删除了一些文件,我们怎么把这些变化同步到github仓库呢?

1.当你对本地的项目文件夹下的文件做了任何改动后,打开github桌面程序,你会发现,你的项目页面变成了这样:

这里出现的所有新条目都是你对项目文件做过的改动,包括修改代码,增加或删除文件,而你可以通过勾选条目前的复选框去选定将那些改动提交到仓库。

2.选择好改动后,在下面的注释框里填写改动的相关信息,以方便后续回溯。(不填写改动注释的标题的话是无法提交改动的。)

3.commit后,你会发现你的项目历史结点上多了一个新的环,代表你的上一次commit记录。

4.但是commit后只是将你的改动信息保存了下来并提交到本地代码库,如果要让远程仓库/Github页面也变成和本地仓库完全一样的状态,还需要点击一下【Repository】-【Push】,代表将新提交的本地改变推进到远程仓库。另外,也可以点击【Repository】-【Sync】,可以完成一样的效果,只是sync同步顾名思义,还包含将远程仓库的改变更新到本地的动作,换言之,sync可以看做push和pull操作的联合体。

5.待sync完成后,小环变成了一个点,代表同步完成,然后打开github的网站,进入到项目下,就会发现改动都同步了(新增了一个测试文件夹)。

建立新的分支 (creating new branch)

Github项目中还有一个很重要的概念是分支(Branch)。

假设,你有一天发现,你的项目可能用普通Java项目的结构来做和用Java EE项目的结构来做都可以,但是你不确定到底用哪种好,于是你和朋友商量一个人做一版。但是,你们做的还是同一个项目,只是架构不同,那么这时,你们就可以开两个分支(Branch),每个分支分别代表一种架构方式。

又或者,你和朋友一起翻译一本中文书,你负责翻译成英文,你朋友负责翻译成法文,那么你们也可以分别在两个分支上操作,而这两个分支都属于这本书的翻译项目。

简而言之,所有分支同属一个项目,但每个分支可以互相独立,互不干扰,而有需要时,任意两个分支也可以合并。

在Github Desktop中,我们首先选定要创建新分支的项目,然后点击【File】-【New Branch】(如下图),输入新分支的名字,并且要选择分支克隆的范本,即新分支以哪个已有当前分支为范本进行拷贝。

接着,在【Repository】-【show branches】中你就可以看到现在已有的两个分支,一个默认的"Master",一个新建的你自己命名的"new-demo-branch",而分支后面的小勾代表你现在操作的分支。

接下来,我们在当前分支下进行的操作,无论是增删改文件,都是针对当前分支的文件,不会对其它分支造成任何影响。

不过,你新建的这个分支目前在github页面是看不到的,因为它还没有公开(publish),所以你会看到,新分支的进度条右侧,会有一个"publish"按钮,当你点击它之后,新的分支才会在页面显示出来。

请求合并自己的代码 (pull request)

当你写好一版很厉害的代码,觉得是对当前项目的一个非常棒的改进后,你希望可以直接把你的代码并入到项目中去,那么你就可以发起一个pull request。

写好pull request的理由,然后send出去,接着就可以在github页面看到项目下的一个pull request。

在网页端这边,项目负责人就可以对pull request进行讨论和审核,如果大家审核通过,就可以选择【Merge Pull Request】,表示允许合并pull request提交的改动。

为什么要pull,而不是直接自己commit的一个重要原因在于:一般情况下,很多人是fork别人的项目,然后自己进行改进,但是你对别人的项目是没有改动权力的,否则就乱套了,你只是能改变你从别人那边fork过来的项目。但是你觉得自己的改进非常棒,想贡献自己的代码并成为原项目的contributor之一,于是你就需要发动一个pull request,请求原项目的负责人将你的代码合并的原项目中。

另外,pull request中的内容可以很方便地被项目负责的所有人讨论,并共同决策要不要把这些新的改变并入到项目中,这样就可以防止某个贡献者可能因为考虑不全面,提交了不合理的改动,进而对项目造成损害。

Github桌面版使用方式(MAC)的更多相关文章

  1. Github入门 - Github基本使用及Github桌面版使用

    知识内容: 1.版本控制 2.Git介绍 3.Github介绍及基本使用 4.Github桌面版介绍及安装 5.Github桌面版基础使用 6.Github桌面版进阶使用 参考: http://www ...

  2. Github(1) 桌面版使用

    桌面版使用 https://www.cnblogs.com/Chenshuai7/p/5486278.html 1安装 我的账号 1051196347@qq.com 密码 L*******4***** ...

  3. Mditor 发布「桌面版」了 - http://mditor.com

    简单说明 Mditor 最早只有「组件版」,随着「桌面版」的发布,Mditor 目前有两个版本: 可嵌入到任意 Web 应用的 Embed 版本,这是一桌面版的基础,Repo: https://git ...

  4. github桌面软件使用教程

    github桌面软件使用教程 首先 要先安装 桌面版官网,或者百度搜github windows下载即可 可以再github网站上直接点击,把代码添加的桌面软件中 也可以再左上角添加项目,比如actu ...

  5. iPhone 上显示桌面版页面

    在用智能电话的浏览器打开页面时,很多网站会根据浏览器的屏幕大小自动调整显示布局,或跳转到移动设备使用的专用面上来优化显示.一些情况下,这种优化可能不是用户希望的,比如优化后的页面缺少桌面版的功能. 这 ...

  6. Windows下安装appium桌面版和命令行版

    安装appium桌面版和命令行版   一 桌面版(打开很慢,常用于辅助元素定位) 1.官网下载window版本:  github search appium desktop download late ...

  7. Stamus Networks的产品SELKS(Suricata IDPS、Elasticsearch 、Logstash 、Kibana 和 Scirius )的下载和安装(带桌面版和不带桌面版)(图文详解)

    不多说,直接上干货!  SELKS是什么? SELKS 是Stamus Networks的产品,它是基于Debian的自启动运行发行,面向网络安全管理.它基于自己的图形规则管理器提供一套完整的.易于使 ...

  8. ubuntu 14.04 桌面版关闭图形界面

    ubuntu 14.04 桌面版关闭图形界面 问题: 怎样将ubuntu14.04设置为文本模式启动? 解决方式: 改动改GRUB 的配置文件(不建议直接改 grub.conf) $sudo vim ...

  9. Spring学习笔记(七)模拟实际开发过程的调用过程XML版-Setter方式注入

    模拟实际开发过程的调用过程XML版-Setter方式注入 源码获取github [TOC] 1.项目结构 2.jar包跟上个一样 3.重写set方法 UserServiceImpl.java 1234 ...

随机推荐

  1. 为何银行愿为收购supercell做无权追索融资?

    无追索权融资又称纯粹的项目融资,是指贷款人对项目主办人没有任何追索权的项目融资.简单来说,这是一种项目失败,也无法追尝的承诺,一般发生在石油.天然气.煤炭.铜.铝等矿产资源开发等相对较为保值的项目融资 ...

  2. C++走向远洋——55(项目一3、分数类的重载、>>

    */ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...

  3. Channel Estimation for High Speed Wireless Systems using Gaussian Particle Filter and Auxiliary Particle Filter

    目录 论文来源 摘要 基本概念 1.时变信道 2.粒子滤波 3.高斯粒子滤波 4.辅助粒子滤波 比较 借鉴之处 论文来源 International Conference on Communicati ...

  4. 一文看懂Java序列化

    一文看懂Java序列化 简介 Java实现 Serializable 最基本情况 类的成员为引用 同一对象多次序列化 子父类引用序列化 可自定义的可序列化 Externalizable:强制自定义序列 ...

  5. @开发者,快来申请你的工业级NXP内核物联网开发板

    米尔工业级NXP开发板试用活动(MYD-C8MMX) 不久前 米尔推出了新一代高性价比核心板之王 MYC-C8MMX核心板及开发板 获得众多客户热烈反馈 这一次 我们给各位带来福利 i.MX8M mi ...

  6. 解决oninput事件在中文输入法下会取得拼音的值的问题

    在做搜索等功能时,很多时候我们需要实时获取用户输入的值,而常常会得到类似 w'm 这样的拼音.为了解决这个问题,我在网上搜索了下相关问题,发现了两个陌生的事件:compositionstart 和 c ...

  7. JZOJ 3928. 【NOIP2014模拟11.6】射击

    3928. [NOIP2014模拟11.6]射击 (Standard IO) Time Limits: 1000 ms Memory Limits: 65536 KB Description 有问题, ...

  8. qt creator源码全方面分析(3-3)

    目录 qtcreatordata.pri 定义stripStaticBase替换函数 设置自定义编译和安装 QMAKE_EXTRA_COMPILERS Adding Compilers 示例1 示例2 ...

  9. python使用while循环实现九九乘法表

    a = 1while a <= 9: b = 1 while b <= a: print("%d*%d=%d\t" % (b, a, a * b), end=" ...

  10. linux 读取 USB HID鼠标坐标和点击 在 LCD上显示

    首先要,编译内核时启用了 USB HID 设备.启用了 鼠标 . 在开发板上插入usb 时会有如下提示. 可以看到,多了一个 mouse0 和 eventX 打出来的是我的 联想鼠标. 1, 在 终端 ...