Github桌面版使用方式(MAC)
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网站仓库上,非常方便。
- 假设我们在github上有一个名为Tech-Learning-Notes的项目。
- 接下来,打开github桌面版,点击左上角的“+”按钮,选择clone,你可以看到你在github上存放的(尚未down到本地的)项目列表。选中Tech-Learning-Notes项目,选择clone Repository,然后选择本地路径以存放项目文件夹。
- 稍等一会儿,待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)的更多相关文章
- Github入门 - Github基本使用及Github桌面版使用
知识内容: 1.版本控制 2.Git介绍 3.Github介绍及基本使用 4.Github桌面版介绍及安装 5.Github桌面版基础使用 6.Github桌面版进阶使用 参考: http://www ...
- Github(1) 桌面版使用
桌面版使用 https://www.cnblogs.com/Chenshuai7/p/5486278.html 1安装 我的账号 1051196347@qq.com 密码 L*******4***** ...
- Mditor 发布「桌面版」了 - http://mditor.com
简单说明 Mditor 最早只有「组件版」,随着「桌面版」的发布,Mditor 目前有两个版本: 可嵌入到任意 Web 应用的 Embed 版本,这是一桌面版的基础,Repo: https://git ...
- github桌面软件使用教程
github桌面软件使用教程 首先 要先安装 桌面版官网,或者百度搜github windows下载即可 可以再github网站上直接点击,把代码添加的桌面软件中 也可以再左上角添加项目,比如actu ...
- iPhone 上显示桌面版页面
在用智能电话的浏览器打开页面时,很多网站会根据浏览器的屏幕大小自动调整显示布局,或跳转到移动设备使用的专用面上来优化显示.一些情况下,这种优化可能不是用户希望的,比如优化后的页面缺少桌面版的功能. 这 ...
- Windows下安装appium桌面版和命令行版
安装appium桌面版和命令行版 一 桌面版(打开很慢,常用于辅助元素定位) 1.官网下载window版本: github search appium desktop download late ...
- Stamus Networks的产品SELKS(Suricata IDPS、Elasticsearch 、Logstash 、Kibana 和 Scirius )的下载和安装(带桌面版和不带桌面版)(图文详解)
不多说,直接上干货! SELKS是什么? SELKS 是Stamus Networks的产品,它是基于Debian的自启动运行发行,面向网络安全管理.它基于自己的图形规则管理器提供一套完整的.易于使 ...
- ubuntu 14.04 桌面版关闭图形界面
ubuntu 14.04 桌面版关闭图形界面 问题: 怎样将ubuntu14.04设置为文本模式启动? 解决方式: 改动改GRUB 的配置文件(不建议直接改 grub.conf) $sudo vim ...
- Spring学习笔记(七)模拟实际开发过程的调用过程XML版-Setter方式注入
模拟实际开发过程的调用过程XML版-Setter方式注入 源码获取github [TOC] 1.项目结构 2.jar包跟上个一样 3.重写set方法 UserServiceImpl.java 1234 ...
随机推荐
- 在 LaTeX 中实现缩印效果
https://liam.page/ 近日大概重拾了一点对 LaTeX 的兴趣,遇见这样一个问题:如何在 LaTeX 中实现缩印效果(即,将两页或更多页排版在一页纸上),并且实现水印效果的页码? 缩印 ...
- C++走向远洋——(项目二、存储班长信息的学生类、派生)
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- 简单的员工管理系统(Mysql+jdbc+Servlet+JSP)
员工管理系统 因为学业要求,需要完成一个过关检测,但是因为检测之前没有做好准备,且想到之前用mysql+jdbc+Struts2+bootstrap做成了一个ATM系统(主要有对数据的增删改查操作), ...
- MySQL的字符集和乱码问题
1.字符集知识 #概述 .字符集是一套文字符号及其编码.比较规则的集合,第一个计算机字符串ASC2 .mysql数据库字符集包括字符集(character)和 校对规则,其中字符集使用来定义mysql ...
- 20170813-CSRF 跨站请求伪造
CSRF CSRF是Cross Site Request Forgery的缩写,翻译过来就是跨站请求伪造. 跨站:顾名思义,就是从一个网站到另一个网站. 请求:即HTTP请求. 伪造:在这里可以理解为 ...
- JS基础入门篇(十二)—JSON和Math
1.JSON JSON: 对象格式的字符串 轻量的数据传输格式 注意事项: 键名 需要 使用 双引号 包起来 JOSN有两个方法:JSON.parse和 JSON.stringify. JSON.pa ...
- Java的三魂七魄 —— 高级多线程
目录 Java的三魂七魄 -- 高级多线程 一.多线程的创建 二.线程安全问题 三.线程通信问题 四.更多实例 1.用线程同步的方法解决单例模式的线程安全问题 2.银行存钱问题(线程安全问题) 3.生 ...
- Adobe Premiere Pro 2020破解教程
首先官网下载Adobe Creative Cloud,安装完之后使用它继续安装Pr.注意在安装之前,点击文件→首选项,先设置一下你的安装路径,没有设置则默认安装在C盘. 接着下载网上良心博主推荐的破解 ...
- java 发送邮件详细讲解
一.JavaMail概述: JavaMail是由Sun定义的一套收发电子邮件的API,不同的厂商可以提供自己的实现类.但它并没有包含在JDK中,而是作为JavaEE的一部分. 厂商所提供 ...
- Core + Vue 后台管理基础框架2——认证
1.前言 这块儿当时在IdentityServer4和JWT之间犹豫了一下,后来考虑到现状,出于3个原因,暂时放弃了IdentityServer4选择了JWT: (1)目前这个前端框架更适配JWT: ...