目录
一. 准备工作
(一) 在GitHub上注册一个账号
(二) 新建一个远端仓库(Repository),位置在网站右上角的一个黑色小加号
二. Win环境下配置
在Win环境下,我们有两种方法操作我们的Project,分别是https和SSH,相比较来说,https更加简单,步骤少。
https 和 SSH 的区别:
1、前者可以随意克隆github上的项目,而不管是谁的;而后者则是你必须是你要克隆的项目的拥有者或管理员,且需要先添加 SSH key ,否则无法克隆。
2、https url 在push的时候是需要验证用户名和密码的;而 SSH 在push的时候,是不需要输入用户名的,如果配置SSH key的时候设置了密码,则需要输入密码的,否则直接是不需要输入密码的。
1. 方法一 (使用https,更简单)
(1)设置Git全局用户配置
git config --global user.name "Your Name"
git config --global user.email "XXX@gmail.com"
(2)创建本地新项目路径(可选,取决于你想把Project放在哪里)
mkdir New-dir //"New-dir"可以随意替换
cd New-dir
git init
(3)你的Project下载到本地(如果Project非空的话)
git pull https://github.com/YourName/YourProject.git
(4)测试
touch README //新建README文件
git add README
git commit -m "New Test"
git push https://github.com/YourName/YourProject.git master
输入用户名和密码后你会看到一大段文字,以”master –> master”结尾,然后进入github网站,你的Project将会更新,到这里我们就成功了!
2. 方法二 (使用ssh key,更稳妥)
(1)创建ssh key
运行 git Bash 客户端,输入如下代码:
cd ~/.ssh
ls
如果警告你路径不存在,那么继续下面步骤,否则说明你已经有ssh key了不需要创建。
ssh-keygen -t rsa -C "your_email@example.com"
代码参数含义:
-t 指定密钥类型,默认是 rsa ,可以省略。
-C 设置注释文字,比如邮箱。
-f 指定密钥文件存储文件名。
以上代码省略了 -f 参数,因此,运行上面那条命令后会让你输入一个文件名,用于保存刚才生成的 SSH key 代码,如下:
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/you/.ssh/id_rsa): [Press enter]
你可以不输入文件名,直接回车就是使用默认文件名(推荐),那么就会生成 “id_rsa” 和 “d_rsa.pub” 两个秘钥文件。
接着又会提示你输入两次密码(该密码是你push文件的时候要输入的密码,而不是github管理者的密码),
当然,你也可以不输入密码,直接按回车。那么push的时候就不需要输入密码,直接提交到github上了,如下:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
接下来,就会显示如下代码提示,如:
Your identification has been saved in /c/Users/you/.ssh/id_rsa.
Your public key has been saved in /c/Users/you/.ssh/id_rsa.pub.
The key fingerprint is:
01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
当你看到上面这段代码的时候,说明你的 SSH key 已经创建成功
(2)添加shh key到github上
回到github网站,点击右上方你的头像旁边的小黑下拉菜单,找到”setting”这一项,进去以后在左侧边栏找到”SSH keys”选项。接着点击”Add SSH key”,”Title”栏随意填写,”key”栏中将刚刚创建key时生成的”id_rsa.pub”文件中全部内容复制进去即可。
(3)测试ssh key
ssh -T git@github.com
接下来会看到这样的警告:
The authenticity of host 'github.com (207.97.227.239)' can't be established.
# RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
# Are you sure you want to continue connecting (yes/no)?
这是正常的,你输入 yes 回车既可。如果你创建 SSH key 的时候设置了密码,接下来就会提示你输入:
Enter passphrase for key '/c/Users/Administrator/.ssh/id_rsa':
密码正确后你会看到下面这段话:
Hi username! You've successfully authenticated, but GitHub does not
# provide shell access.
如果用户名是正确的,你已经成功设置SSH密钥。如果你看到 “access denied” ,者表示拒绝访问,那么你就需要使用 https 去访问,而不是 SSH 。
三. Ubuntu环境下配置
请移步至《Git设置及GitHub的使用》文档,地址http://www.cnblogs.com/peterzd/archive/2012/04/22/2465230.html
四. 基础使用
在git操作中,为了形象,我们可以简单理解为本地文件有四个状态,分别为”untracked”, “tracked”, “unstaged”, “commited”,只有”commited”状态的文件才可以被上传到你线上的Project。
untracked:本地新建的文件
tracked:已经被跟踪,也记录好修改内容
unstaged:被跟踪的,但是又修改过了,修改内容还没记录
commited:已经被登记到上传列表,待传到线上去
(1)将Project进行clone到本地
git clone https://github.com/YourName/YourProject
(2)进行add操作
凡是进行修改过的,或是新建了的文件,想要记录这些操作,就需要先用add指令:
git add filename
进过add指令的文件属于tracked状态,下一步就是变成commited
(3)进行commit操作
git commit -m "The text you like"
代码中“”中的内容为你该次上传的备注文字,必须得写,在github上能看到你每次上传的这个备注文字。
(4)进行push操作
push意味着将本次修改真正地从本地提交到线上去。(我默认你就使用master分支)
git push https://github.com/YourName/YourProject master
最后像之前测试的时候一样输入用户名和密码,到这里我们就向线上完成了一次简单的提交,到github网站上就可以看到更新了。
五. git操作小技巧
当文件过多需要add时,我们不可能一个文件一个文件地add,这时候可以使用:
git add .
对当前所有需要add的文件进行add操作。
另:git工具官方网站目前需要翻墙下载,我的个人空间里有git工具可供下载。
如果有疑问或指正,欢迎留言。
参考文献:
[1] 《github设置添加SSH》,http://blog.csdn.net/binyao02123202/article/details/20130891
[2] github帮助文档,https://help.github.com/articles/generating-ssh-keys
[3] 《git/github初级运用自如》,http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html