Github是一个开源的分布式版本控制系统,用以有效、高速的处理各种规模的项目版本管理, 它是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件,后来得到广泛的使用。GitHub 可以托管各种git库,并提供一个web界面,但与其它像 SourceForge或GoogleCode这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简 单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。
- 1. 安装Git on Windows
下载 msysgit(http://code.google.com/p/msysgit/), 安装时保留默认选项, 不要使用putty作为客户端,GitHub只支持openssh. 安装完成后需要生成SSH Key.
支持windows可视化操作界面客户端(和svn很类似),但是不建议使用; - 2. 配置
2.1 检查是否已经存在KEY
$ cd ~/.ssh $ ls config id_rsa id_rsa.pub known_hosts $ mkdir key_backup $ cp id_rsa* key_backup $ rm id_rsa*
如果已经存在KEY(id_rsa, id_rsa.pub),把他们拷贝到key_backup目录备份, 因为SSH默认会使用”.ssh”目录下的KEY
注:windows7在C:\Users\ZDZ\.ssh目录下可以找到
- 2.2 生成SSH KEY
代码
$ ssh-keygen -t rsa -C "your_mail_addr@gmail.com" Enter file in which to save the key (/c/Users/Tekkub/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /c/Users/Tekkub/.ssh/id_rsa. Your public key has been saved in /c/Users/Tekkub/.ssh/id_rsa.pub. The key fingerprint is: e8:ae:60:8f:38:c2:98:1d:6d:84:60:8c:9e:dd:47:81 your_mail_addr@gmail.com
在这里会要求输入key 目录和 密码,可根据自己的情况输入
注:这里生成的key可以在多个网站上使用(例如github和bitbucket),只要本地的和对应网站的key保持一致就可以了
- 2.3 将Public Key 添加到GitHub
打开你的GitHub->SSH Public Key->点击“Add another public key”, 将你的public key(id_rsa.pub)的内容拷贝到GitHub中 - bitbucket添加方式:帐号下来–>Account–>SSH keys 里面的 Add a new key , 将你的public key(id_rsa.pub)的内容 拷贝到SSH key文本框
2.4 测试
-
$ ssh git@github.com ERROR: Hi tekkub! You've successfully authenticated, but GitHub does not provide shell access Connection to github.com closed.
成功!!
- 3. 下载你的项目
$git clone git://github.com/schacon/simplegit.git
- 4. 提交变更
4.1 配置
git config --global user.name "Your Name" git config --global user.email your_email@gmail.com
- 4.2 创建Repository
cd yourrepo git init touch README git add README git commit -m 'first commit' git remote add origin git@github.com:your_name/yourrepo.git git push origin master
- 4.3 提交已经存在的Repository
cd existing_git_repo git remote add origin git@github.com:your_name/yourrepo.git git push origin master
公钥认证需要一对密钥:公钥-私钥,所以在你的的电脑上要有:private.ppk(私钥)文件和Public文件(公钥),用私钥加密公钥。
握 手原理:当登录服务器时,客户端软件将向服务器发出公钥认证请求,服务器先检查你的公匙是否合法,然后就用公钥加密一个随机数发送给客户端软件。客户端软 件用私钥将这个加密的随机数解密后发送给服务器。因为公钥和私钥是成对使用的,公钥加密的数据只能用私钥解密,所以服务器就可以确认公钥认证的合法性了。
也欢迎大家光临我的个人网站:waitig » Git与Github使用教程(windows环境)