以下转自 http://liuzhijun.iteye.com/blog/1457207
有问题请联系我删除。
-----————————————————————————
如果你的代码不知道放哪里好,放到github是一个不错的选择。下面奉上一文入门级别的配置篇。(以下配置同时适用于window和linux)
在github注册完后,首先创建一个仓库(repositry),在你的个人页面右边"Your Repositories"模块,点击 New repository,这里我们把project name 填写为 “test"
除了项目的名字是必填的外,另外两个空是可选的。点击”Create repository"之后会看到下面这个页面:
这就是你接下来要做的事情。首先你要安装Git客户端,windows版本下载地址,安装的时候根据提示选择下一步就行,安装完后就是设置SSH Keys
打开安装目录,进入Git Bash控制台
1、检查是否存在SSH keys,如果第一次安装是没有的,输入命令(这里的命令输入方式基本和在linux下面是一样的),如果存在key了,可以直接跳到第4步。(下面的$符号是作为命令行的开始,不需要手动输入)
注意:在linux的用户目录可能没有.ssh目录,需要自己创建
Java代码
- $ cd ~/.ssh
如果显示 “No such file or directory "那么直接到第3步,否则执行第2步(这里的意思是说,若果没有.ssh目录,我们就要去创建一个,如果存在的话,我们就备份已经存在的)
2、备份、移除以存在的SSH keys
Java代码
- $ ls
- $ mkdir key_backup
- $ cp id_rsa* key_backup
- $ rm id_rsa*
(把id_rsa*开头的文件备份到key_backup)文件中去,在把这些文件从当前目录移除
3、生成新的SSH Key
Java代码
- $ ssh-keygen -t rsa -C "[email protected]"
注:如果提示错误Could not create directory ‘//.ssh‘,需要设置环境变量“home"--->"你的home目录",我这里是这样设置的 home----->users/cloudview,出现这个错误我很奇怪,不知是否安装了其他软件导致系统环境变量发生改变还是其他原因,待查?
(上面的email是你注册时的email地址,注意双引号不能省略,提示要输入文件名来保存key是,默认按回车就行,采用系统默认的保存方式即可,接下来回提示输入一个叫”passphrases"的东西,可以简单的理解为本地机器与github通信时的凭证,相当于密码,但是比密码更复杂,也更安全,这个要记住,以后要用的)
最后你将看到(fingerprint)一串16进制的数字,同时在当前路径的.ssh目下面生成id_rsa.pub文件。说明key已经生成了
4、把刚刚生成的key添加到GitHub中去
在GitHub站点点击 Account Setting > SSH keys >Add SSH key,不清楚的可以看下图
用编辑器(notepad++,vim)打开id_rsa.pub文件,选取所有内容拷贝到key的输入框里。这样key就添加成功了。
此时里成功已经不远了,就差一步测试了。输入如下命令
Java代码
- $ ssh -T git@github.com
会提示是否继续连接,yes后,你将看到如下信息,说明应经大功告成了
写道
Hi "username"! You‘re successfully authentiated,but GitHub does not provide shell access
别急,虽然可以连接成功了,但还不知道怎么上传文件到GitHub去呢,接下来就来试一试。
5、上传文件到GitHub
首先设置好个人信息,用于在提交代码是说明是谁提交的,然后还可以用email去联系他。
Java代码
- $ git config --global user.name "Firstname Lastname"
- $ git config --global user.email "[email protected]"
上面的名字通常是你的真实姓名。
接下来执行以下命令
Java代码
- mkdir test
- cd test
- git init
- touch README
- git add README
- git commit -m ‘first commit‘
- git remote add origin git@github.com:lzjun/test.git
- git push -u origin master
大概意思就是在本地创建test目录,初始化,创建一个README文件,当然这个文件时空的,你可以往里面填内容。接下来就是add就是把README文件纳入到git的管理范围内,
commit:相当于把你项目的代码,文件及所有的东西做一个快照,(好比我们拍照),这所有的文件定格在这个时刻,之后的每一次commit也只把那些发生了改变的文件做快照。此时还并没有把代码提交到GitHub上去
remote:和GitHub建立远程连接,注意这里的"lzjun"就是我的账户名,这根据自己的名称做相应的改变。这一步只在你第一次提交文件的时候出现,并且要输入之前的pressphrases.
push:就很好理解了,把文件推送到GitHub站点去。
在push的时候可能会出现如下错误:
To [email protected]:lzjun/test.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘[email protected]:lzjun/test.git‘
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. ‘git pull‘) before pushing again. See the
‘Note about fast-forwards‘ section of ‘git push --help‘ for details.
可以先pull一遍
git pull [email protected]:lzjun/importnewstat.git master
赶紧打开GitHub站点看看,你的test仓库里是否多了个README文件。
6、如果Fork别人的项目
如果想下载名为username用户的项目,我们需要使用clone命令,假设项目名叫“tools"
Java代码
- git clone git@github.com:username/tools.git
补充:commit 的时候如果发生乱码:可以添加如下设置
Java代码
- git config --global i18n.commitencoding utf-8
参考:http://help.github.com/fork-a-repo/,图片来源于该站点。