GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了,非常受欢迎,比之svn更好。
一、创建GitHub repository(仓库)
1-1 登录GitHub
GitHub的官方网址:https://github.com ,如果没有账号,赶紧注册一个。
点击Sign in进入登录界面,输入账号和密码登入github。
1-2 创建repository(仓库)
为啥要叫repository(仓库)?我起初也纳闷,叫代码库不更简单明了么? 但仔细一琢磨,仓库一般都是放粮食的吧,这是把代码当作饱腹之物,多有爱,瞬间觉得这冰冷冷的代码充满了查克拉。
扯远了,来看怎么创建仓库,登录后可以看到有repository选项卡
如果没在这个页面也没关系,点击右上角的头像旁边的小三角,展开后可以看到Your profile,点击进入后也能看到repository
切换到repository选项卡,可以看到很醒目的new按钮。不用犹豫,点击它,开始创建自己的粮仓了。
下面是创建仓库信息,只有名字是必填项,现在我创建了一个仓库叫:beautifulDay(个人建议:这里的名字最好是能和工程名相同)
创建成功后,可以看到自己的仓库地址,如此,我的远程免费的仓库就创建了。它还介绍了github仓库的常用指令。这个指令需要在本地安装git客户端。
git init //把这个目录变成Git可以管理的仓库
git add README.md //文件添加到仓库
git add . //不但可以跟单一文件,还可以跟通配符,更可以跟目录。一个点就把当前目录下所有未追踪的文件全部add了
git commit -m "first commit" //把文件提交到仓库
git remote add origin git@github.com:wangjiax9/practice.git //关联远程仓库
git push -u origin master //把本地库的所有内容推送到远程库上
二、安装git客户端Git是目前世界上最先进的分布式版本控制系统,git与svn的五个基本区别。它有以下特点:
分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具;
保存点 : Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目额状态; 可以在该保存点将多人提交的源码合并, 也可以会退到某一个保存点上;
Git离线操作性 :Git可以离线进行代码提交, 因此它称得上是完全的分布式处理, Git所有的操作不需要在线进行; 这意味着Git的速度要比SVN等工具快得多, 因为SVN等工具需要在线时才能操作, 如果网络环境不好, 提交代码会变得非常缓慢;
Git基于快照 : SVN等老式版本控制工具是将提交点保存成补丁文件, Git提交是将提交点指向提交时的项目快照, 提交的东西包含一些元数据(作者, 日期, GPG等);
Git的分支和合并 : 分支模型是Git最显著的特点, 因为这改变了开发者的开发模式, SVN等版本控制工具将每个分支都要放在不同的目录中, Git可以在同一个目录中切换不同的分支;
分支即时性 : 创建和切换分支几乎是同时进行的, 用户可以上传一部分分支, 另外一部分分支可以隐藏在本地, 不必将所有的分支都上传到GitHub中去;
分支灵活性 : 用户可以随时 创建 合并 删除分支, 多人实现不同的功能, 可以创建多个分支进行开发, 之后进行分支合并, 这种方式使开发变得快速, 简单, 安全。
2-1 下载git客户端
官方下载地址:http://git-scm.com/download/ 根据你自己的系统 下载对应版本,没想到它知道我是Mac
2-2 安装git客户端
安装好,账户也注册好了,我们打开终端terminal,输入cd ~/.ssh
如果是第一次,它会出现No such file or directory,
不要担心,我们建立密钥就好,输入ssh-keygen -t rsa -C “你的邮箱github”,一路回车,一个是修改密码,不过密码大于4位,否则要重新来过,这是在你提交项目的时候需要输入的密码,不设即为空,看自己喜欢;默认是保存在users/ 下面,到时会出现信息的
三.创建属于你的SSH。SSH是Secure Shell的缩写,意为安全外壳协议,具体内容请百度搜索“SSH”。创建步骤如下:
1.1在GitHub网站登录后,找到下图所示的按钮,选择“Settings”
1.2接下来你会看到下图,选择“SSH and GPG keys”
1.3接下来就可以新建你的SSH keys,找到下图中所示的按钮“New SSH keys”
问题来了
接下来请找到“id_rsa”和“id_rsa.pub”两个文件,使用文本编辑器打开“id_rsa.pub”将其中的内容全部复制。
接着将id_rsa.pub文件中key粘贴到此,最后Add key生成密钥吧
如此,github账号的SSH keys配置完成。
四、上传本地项目到github
3.1打开终端,输入以下命令
1
|
cd ~/.ssh
|
如果上面的步骤都没问题,此时你应该会进入该路径。下面将会发生神奇的事,在终端中即可完成代码的上传工作。
上传前请确保终端已经连接到GitHub,输入以下命令测试
1
|
ssh -T git@github.com
|
连接成功的返回应该是
1
|
Hi
"your name"
! You've successfully authenticated, but GitHub does not provide shell access.
|
3.2以此键入以下命令(注意:切换到你的项目所在的路径)
1
2
3
4
5
6
|
touch README.md
//新建一个记录提交操作的文档
git init
//初始化本地仓库
git add README.md
//添加文件
git commit -m
"first commit"
//提交到本地仓库,并注释
git remote add origin git@github.com:youname/Test.git
//连接远程仓库并建了一个名叫:origin的别名
git push -u origin master
//将本地仓库的东西提交到地址是origin的地址,master分支下
|
上面的代码做了什么?其实它只是讲一个文本文件提交到了“master”分支上,没什么特别的,值得注意的是,里面的“add”,“commit”和“push”三个操作,“add”可以添加多个文件分多行键入,也可添加当前目录下的所有文件“add .”即可,“commit”操作是提交到本地仓库,注意是本地仓库,这一操作不会影响远端的代码;“push”操作则是将本地修改的代码push到远端分支。
3.3最后一步,上传你的项目到GitHub。键入以下命令(注意:切换到你的项目所在的路径)
1
2
3
4
5
6
7
|
首先切换到你项目所在的路径
git init
git add .
git commit -m
"first commit"
git remote add origin git
@github
.com:youname/Test.git
git pull origin master
git push -u origin master
|
解释一下,上面现切换到你的项目所在的路径,从而可以使用“add .”命令将项目所有问价都上传到GitHub。
3.4本来到这你应该已经把自己的项目成功上传上去了,但是,也可能会遇见一些问题
例如
1
2
3
4
5
6
7
|
To git@github.com:PaulPaulBoBo/ForHealth.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to
'git@github.com:xxx.git'
hint: Updates were rejected because the tip of your current branch
is
behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint:
'git pull ...'
) before pushing again.
hint: See the
'Note about fast-forwards'
in
'git push --help'
for
details.
|
上面说上传一些“refs”错误,在pushing之前请pull,为什么会这样呢?原因是本地代码跟远端的冲突造成的,应该先将远端的代码拉回到本地再上传。
方法1:
1
2
3
|
git pull origin master
git push -u origin master
|
方法2:
1
2
3
|
git pull --rebase
git push --dry-run --verbose origin HEAD:master
git push origin HEAD:master
|
这样就可以解决冲突问题了。当然,后期开发的时候,如果冲突问题比较多的话,还得手动修改某些冲突文件后才可以上传。
好了,项目上传完毕,你可以跟全世界一起讨论你的项目了!