热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在Mac上配置/使用Github

文/天才晓波(简书作者)原文链接:http:www.jianshu.comp20eee155bbee著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。先简
文/天才晓波(简书作者)
原文链接:http://www.jianshu.com/p/20eee155bbee
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

先简单介绍一下Git和Github,以下文字来源于维基百科。

Git是用于Linux内核开发的版本控制工具。与常用的版本控制工具CVS,Subversion等不同,它采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。Git的速度很快,这对于诸如Linux kernel这样的大项目来说自然很重要。Git最为出色的是它的合并跟踪(merge tracing)能力。

GitHub是一个用于使用Git版本控制系统的项目的基于互联网的存取服务。它是由GitHub公司(先前被称作用Logical Awesome)的开发者Chris Wanstrath, PJ Hyett, 和 Tom Preston-Werner 使用Ruby on Rails写成的。GitHub同时提供商业账户和为开源项目提供的免费账户。根据在2009年的Git用户调查,GitHub是最流行的Git存取站点。

它提供了像 feeds,followers 和显示开发者们怎样在他们的版本库的版本上工作的网络图表。

使用GitHub能够帮助我们做好项目开发中的版本控制工作,更棒的是,它可以免费使用!

以下流程在从网络及实践中总结写成:

1.下载,安装Git,注册GitHub:

从google code上可以获的Mac OS的dmg安装文件

下载地址:http://git-osx-installer.googlecode.com/files/git-1.7.12-intel-universal-snow-leopard.dmg

安装没有什么好说的,打开.dmg文件,然后运行.pkg文件,一步一步往后装即可。git 会被安装到/usr/local/git/bin目录下。

注册GitHub同样非常简单,选择免费的开源账户类型,按部就班走流程即可。

2.配置Git

在终端进入.ssh目录,如果目录中有文件,备份一份然后获取密钥:

$ cd ~/.ssh

$ ls //如果目录下已有文件,建立一个备份文件夹,把原有文件备份进去

$ ssh-keygen -t rsa -C "你的邮箱@xxx.com" //之后一路回车即可

然后在该目录下会有一个id_rsa.pub文件,文件里就是刚才生成的密钥,用vim等编辑器打开并复制内容。

进入GitHub里右上角的Account Setting

 


 

 

之后,SSH Keys ->Add SSH key ,在Key栏中粘贴上刚才拷贝的密钥内容。

 


 

 

完成后再返回终端,运行:

$ ssh -T git@github.com

之后出现的显示都填yes即可,出现:

HiXXX! You"ve successfully authenticated, but GitHub does not provide shell access.

即为连接成功。

如果连接失败,有可能是默认的22端口被封了,可以在.ssh目录下新建一个名为config(没有后缀名)的文件,内容如下:

Host github.com

User XXX@XXX.com

Port 443

Hostname ssh.github.com

之后要设置用户信息

$ git config --global user.name "XXXX" //自己随便起个名字

$ git config --global user.email "XXX@XXX.com"

至此,GitHub的配置工作完成。

3.终端及GitHub图形化界面下的使用

GitHub图形化界面的使用

一. 建立GitHub Repository并修改提交代码

访问github.com并登陆,在页面的右下角有你当前的Repository信息,点击New Repository创建一个新的

 


 

 

在下一个页面填写好Repository的名称和描述,创建一个README文件(这样一会可以直接执行clone操作)

创建完成之后,左上角 Clone in Mac,在你本机的GitHub中就会出现clone选项,名称和地址,执行clone操作,在本地选择的地址下就会有一个clone的副本文件夹出现。

在本地随意编辑README文件,保存后就会看到GitHub里已经检测到改变的发生,这时我们可以执行commit操作,Commit&Sync 将改动提交到网上。

 


 

 

刷新GitHub网站的页面,可以看到改动已经被提交。

二. 代码回滚

在代码编写的过程中,遇到错误的修改导致代码损坏的情况很常见,有GitHub的版本管理,可以通过代码回滚将原有的代码恢复。

在GitHub图形界面里的History界面里我们能看到我们做过的所有的改动提交,代码回滚等操作,点开一个提交操作

 


 

 

可以看到,有两个操作,Revert commit 和 Roll back to this commit ,其中Roll back to this commit 就是将本地代码回滚到这次提交之后的状态,Revert commit则是把这次提交的修改全部回滚,但是如果在这次提交之后又有提交就会产生冲突的情况,这个后面说。

注意,上面的修改都是针对本地代码的,只要不commit对线上代码是没有影响的。


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • SpringBoot整合SpringSecurity+JWT实现单点登录
    SpringBoot整合SpringSecurity+JWT实现单点登录,Go语言社区,Golang程序员人脉社 ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • linux filesystem_如何使用cgdb + qemu调试linux内核模块
    如何使用cgdbqemu调试linux内核模块前言Linux代码庞大而繁杂,光看代码会使人头晕目眩,如果能通过调试工具对其代码执行流程进行调试ÿ ... [详细]
  • 【Zabbix4.2学习笔记】1、CentOS7.5安装zabbix4.2
    1、关闭防火墙和selinux#systemctlstopfirewalld#vimetcselinuxconfigSELINUXpermissive#setenforce02、添加zabbix存储库rpm-Uvhh ... [详细]
  • 突然觉得服务器ssh密码登录总是浪费一定量的时间,就想试试用sshKey进行登录。生成服务器sshkey和本地sshkey$ssh-keygen在服务器上生成一个authorize ... [详细]
  • 13Linux基本命令和配置服务器来电后自动开机
    本节所讲内容:Linux终端介绍Shell提示符BashShell基本语法基本命令的使用:ls、pwd、cd查看系统和BIOS硬件时间Linux如何获得 ... [详细]
  • hadoop完全分布式搭建
    原文链接:hadoop完全分布式搭建主机分配以及地址要求:角色主机名IP地址Namenodemaster192.168.222.201Datanodeslave ... [详细]
  • 服务器系统控制台怎么打开文件,云服务器控制台怎么打开文件
    云服务器控制台怎么打开文件内容精选换一换远程桌面协议(RemoteDesktopProtocol,RDP),是微软提供的多通道的远程登录协议。本节为您介 ... [详细]
  • 大数据学习环境安装关于防火墙​centos7使用的是firewalld,centos之前使用的是iptablesCentOS7关闭防火墙查看防火墙状态sudosy ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • 让你明白kvm是什么
    参考:https:blog.csdn.netbbwangjarticledetails80465320KVM工具集合:libvirt:操作和管理KVM虚机的虚拟化API ... [详细]
  • ssh 免登
    2019独角兽企业重金招聘Python工程师标准ssh-copy-id三步实现SSH无密码登录和ssh常用命令Linux下实现免密码登录(超详细)ssh-copy-id-i. ... [详细]
  • Linux文本终端字符界面屏保取消在我们日常使用Linux过程中,经常遇到使用屏幕终端一段时间后,显示器关闭,屏幕上没有任何显示。一段时间 ... [详细]
author-avatar
ARUAN地盘_740
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有