什么是Git
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。Git是Linux Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
什么是GitHub
GitHub是一个基于网络的,给使用以Git为版本控制的项目提供的托管服务。使用Ruby on Rails编写,主要开发人员有Chris Wanstrath, PJ Hyett, and Tom Preston-Werner.GitHub即提供商业化的使用,也为开源项目提供免费的账户。根据在2009年对Git用户的调查,GitHub是最流行的Git托管网站。
如何使用GitHub
首先你必须安装Git和申请GitHub的一个账户,配置Git
1
2
3
|
$ git config --global user.name "你的名字,如test" $ git config --global user.email "你的邮箱,如test@test.com" |
对于你为Git设置的邮件地址应该与您的GitHub的账户设置的默认邮箱地址相同,如果不同,你需要做如下操作
- 登录你的GitHub帐号
- 进入Account Settings
- 点击左侧边栏的“Emails”选项
- 点击“Add another email address”
- 输入一个新邮件地址并且点击“Add”
- 删除以前的邮件地址
如果你希望你的邮件地址被隐藏,你需要这样做:
Git在你做一些提交操作时需要提供身份证明,但是你可以通过伪造邮件地址来隐藏你的真实的email信息。Git并不关心邮件地址是不是合法。
需要注意的是,尽管Git不在意,但是如果你没有提供有效的邮件地址,一些项目可能不会接受你的提交操作。所在在做下面的操作前你需要先确定你的项目的一些条款。
Github并没有收到多少关于垃圾邮件被发送到Git使用的邮箱的报告。但是如果你担心这些,以下操作应该能帮助你解决这些问题。
一些人可能想要隐藏他们的邮件地址,常用的方法是使用“user@server”来代替提供完整的主机名的电子邮件。如果你想要这样设置并且仍能够让你的提交操作连接到你的GitHub账户,遵照这些步骤来:
步骤1:为Git配置伪造的邮件地址
不使用完整的电子邮件(例如,“user@server.com”),你可以配置Git的“user.email”为截断的版本,它将仍然作为你的唯一标识符。
1
2
|
$ git config --global user.email "user@server" #设置邮箱地址为截断的值 |
需要注意的是:使用 –global 标记将为你所有的Git项目配置伪造的邮箱地址。如果在某一个项目文件下,你可以使用不带 –global 标记的命令来为这个项目覆盖全局的配置。
步骤2:向你的GitHub账户添加伪造的邮箱地址
- 登录你的GitHub帐号
- 进入Account Settings
- 点击左侧边栏的“Emails”选项
- 点击“Add another email address”
- 输入一个邮件地址(如上面所说的.”user@server”)并且点击“Add”
步骤3:现在在你提交操作时可以不用担心垃圾邮件了
这些操作只对操作结束后的提交操作有效,如果你想清除以前的提交记录,你需要重写你的以前的提交记录。最见简单的办法是:
>使用“git filter-branch重写记录
>强制推送新的历史记录
重写记录是不建议的操作,你应该只在需要的时候做这个操作。
缓存密码
最后的操作是,我们要告诉git我们并不想每次与远程服务器交互时都需要输入用户名和密码(你需要git版本1.7.10或更新的版本来使用credential)。
要使用这个操作,你需要启用credential helper,以使得git在内存中保存你的密码一段时间。
1
2
3
|
$ git config --global credential.helper cache #Set git to use the credential memory cache |
默认情况下会缓存你的密码15分钟,我们可以更改它
1
2
3
|
$ git config --global credential.helper ‘cache --timeout=3600’ #1小时的缓存 |
注意:credential.helper仅仅在你clone HTTPS repo URL时候有效。如果你使用SSH repo URL,SSH keys被用来验证。
如何生成SSH Keys
如果你打算不使用HTTPS方法,我们可以使用SSH keys在你的电脑和GitHub之间建立一个安全的链接。下面的步骤会告诉你如何生成一个SSH key并且将他们添加到你的GitHub账户中。
步骤1:检查SSH keys
已经存在一个你想使用的密钥对,打开终端并且运行:
1
2
3
|
$ cd ~/.ssh #检查在你的用户目录中是否已经存在一个叫”.ssh"的目录 |
如果它显示“No such file or directory”,跳到步骤3,否则进入步骤2.
步骤2:备份并删除已存在的SSH keys
因为已经存在一个SSH目录,你需要备份它并且删除它
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
$ ls # Lists all the subdirectories in the current directory config id_rsa id_rsa.pub known_hosts $ mkdir key_backup # Makes a subdirectory called "key_backup" in the current directory $ cp id_rsa* key_backup # Copies the id_rsa keypair into key_backup $ rm id_rsa* # Deletes the id_rsa keypair |
步骤3:生成一个新的SSH key
我们使用默认设置,当叫我们输入一个保存key的文件时,直接点击enter
1
2
3
4
5
6
7
|
$ ssh-keygen -t rsa -c "your_email@youremail.com" #使用指定的邮件地址(如test@test.com)生成一个新的ssh key Generateting public/private rsa key pair. Enter file in which to save the key(/home/you/.ssh/id_rsa); |
现在你需要输入passphrase(相当于密码之类的东西)
1
2
|
Enter passphrase (empty for no pass[hrase):[Type a passphrase] Enter same passphrase again: [Type passphrase again] |
现在终端应该显示像下面的东西
1
2
3
4
|
Your identification has been saved in /home/you/.ssh/id_rsa. Your public key has been saved in /home/you/.ssh/id_rsa.pub. The key finerprint is 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com |
步骤4:添加SSH key至GitHub
运行如下命令复制key到粘帖板
1
2
3
4
5
6
7
|
$ sudo apt-get install xclip #Downloads and installs xclip $ xclip -sel clip < ~/.ssh/id_rsa.pub #复制id_rsa.pub文件中的内容到粘帖板中 |
- 进入你的 Account Settings
- 点击左侧的 SSH Keys
- 点击 “Add SSH Key”
- 粘帖你的key到“key”的输入框中
- 点击“Add key”
- 输入你的GitHub密码来确认这次操作
1
2
|
$ ssh -T git@github.com</div> #通过ssh 连接到github |
1
2
3
4
|
The authenticity of host "github.com(207.97.227.239)' can't be established.RAS key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.Are you sure youwant to continue connection(yes/no)? |