服务器上的 Git - 协议
Git可以使用四种主要的协议传输资料:本地协议(Local)、HTTP 协议、SSH(Secure Shell) 协议以及 Git 协议。目前使用最普及的是 SSH 协议和 HTTP 协议。
本地协议
本地协议的优点是简单,缺点是不方便从多个位置访问。
克隆一个本地版本库,可以执行如下命令:
$ git clone /opt/git/project.git
或
$ git clone file:///opt/git/project.git
HTTP 协议
该协议的优点是:不同的访问方式只需要一个 URL 以及服务器只在需要授权时提示输入授权信息,这两个简便性让终端用户使用 Git 变得非常简单。缺点是:在一些服务器上,架设 HTTP/S 协议的服务端会比 SSH 协议的棘手一些。
SSH 协议
SSH 协议的优点是:架设简单、访问安全、传输高效。缺点是:不能通过它匿名访问,即便只要读取数据,使用者也要有通过 SSH 访问你的主机的权限,这使得 SSH 协议不利于开源的项目。
通过 SSH 协议克隆版本库的命令:
$ git clone ssh://user@server/project.git
或
$ git clone user@server:project.git
Git 协议
目前,Git 协议是 Git 使用的网络传输协议里最快的。Git 协议缺点是缺乏授权机制。
服务器上的 Git - 生成 SSH 公钥
为了向 Git 服务器提供 SSH 公钥,如果某系统用户尚未拥有密钥,必须事先为其生成一份。
快速确认自己是否已拥有密钥:
$ cd ~/.ssh
$ ls
查看是否有一对以 id_dsa 或 id_rsa 命名的文件,其中一个带有 .pub 扩展名。 .pub 文件是你的公钥,另一个则是私钥。
如果没有密钥,可以用如下命令生成:
$ ssh-keygen
关于在多种操作系统中生成 SSH 密钥的更深入教程,请参阅 GitHub 的 SSH 密钥指南 https://help.github.com/articles/generating-ssh-keys。
GitHub - 账户的创建和配置
GitHub 是最大的 Git 版本库托管商,是成千上万的开发者和项目能够合作进行的中心。 大部分 Git 版本库都托管在 GitHub,很多开源项目使用 GitHub 实现 Git 托管、问题追踪、代码审查以及其它事情。
账户的创建和配置
首先去 https://github.com 网站注册账号。
其次将生成的 SSH 密钥添加到新申请的账号里。
GitHub - 对项目做出贡献
派生( Fork )项目
如果你想要参与某个项目,但是并没有推送权限,这时可以对这个项目进行“派生”。 派生的意思是指,GitHub 将在你的空间中创建一个完全属于你的项目副本,且你对其具有推送权限。
GitHub流程
GitHub 设计了一个以合并请求为中心的特殊合作流程。
流程通常如下:
从 master 分支中创建一个新分支
提交一些修改来改进项目
将这个分支推送到 GitHub 上
创建一个合并请求
讨论,根据实际情况继续修改
项目的拥有者合并或关闭你的合并请求