在GitHub上创建上传下载开源项目代码
1、注册GitHub帐号,创建GitHub项目代码仓库
1.1、注册GitHub帐号
在使GitHub之前,需要先登录其官网注册一个免费使用的账号。登录 https://github.com/join?source=header-home进行注册。
1.2 在GitHub上添加SSH Key
为什么要在GitHub上添加SSH Key呢?因为 GitHub 需要识别出提交的代码确实是你提交的而不是别人。Git支持SSH协议,因此GitHub只要知道了你的公钥,就可以确认代码是你提交的。当然, GitHub允许你添加多个SSH Key。例如你有若干电脑,只要把每台电脑的SSH Key都添加到 GitHub上,就可以在每台电脑上往 GitHub 推送了。注意:在GitHub上免费托管的Git仓库,任何人都可以看到,所以不要把私密信息放在GitHub上免费托管的Git仓库中。
使用如下命令生成 SSH Key:

执行上述命令以后,会确认是否将 SSH Key 文件存放到~/.ssh 目录,如果已经存在该目录,且该目录已经有了SSH Key,会询问用户是否覆盖。接下来让你连续两次输入密码,注意输入密码的时候没有回显,两次密码都是注册 GitHub 时候的登陆密码。如果一切正常,会出现如图 1-1 所示的信息,然后在~/.ssh 目录会生成 id_rsa 和 id_rsa.pub 两个文件,它们是 SSH Key 的秘钥对。 id_rsa是私钥,不能泄露出去; id_rsa.pub是公钥,可以放心地告诉任何人。

图 1-1 生成 SSH Key 成功
用文本编辑器打开id_rsa.pub 文件,将里面的内容全部复制(注意不要修改任何内容)。在GitHub主页面右上角点击下拉箭头,如图 1-2 所示。

图 1-2 添加 SSH Key 的入口
然后点击 seetings,在新页面左侧选择 SSH Keys,在右侧点击“New SSH key”,在下方输入 Title 以及 Key, Title 随便填写,Key 选项的输入框就粘贴刚刚从 id_rsa.pub 复制的内容。如图 1-3 所示,然后单击“Add SSH key” 按钮,接下来会弹出一个窗口让你输入GitHub帐号的密码,输入确认后即可添加一个 public key。

图 1-3 添加Public SSH Key
设置完SSH key以后,可用如下命令检测公钥、秘钥以及上述步骤的设置是否正确:
$ ssh-keygen -t rsa -C "注册 GitHub 使用的邮箱"
1.3、GitHub上新建repository
点击https://github.com/主页右上角的加号(+)按钮, 然后选择“New Repository”,如图 1-4 所示

图 1-4 新建repository页面
依次填入repository名称以及对项目的描述和选择项目是否公开,这里要选择Public,还可以选择项目遵循的许可协议,我们选择的是GPLv3(可以不选),具体的设置如图 1-5 所示,最后点击“Create repository”完成开源项目的创建。

图 1-5 创建一个 GitHub 项目repository
2、上传代码到GitHub仓库
首先要配置Git邮箱和用户名:

接下来需要获取在GitHub上的项目仓库的URL。在GitHub主页面上,单击右下方的仓库标签,如图 1-6所示:

如果是一个空的仓库,会弹出如下页面:

我们可以按照提示把代码上传到GitHub仓库。如果本地已经有一个Git仓库,我们可以在本地git仓库目录下执行红色框中的命令把代码上传到GitHub仓库中去。
git remote add origin git@github.com:AP0904225/dssdf.git这个命令将本地代码库和 GitHub 远程代码库关联起来, 其中origin表示的是远程代码库的仓库名字;
git push -u origin master命令将本地版本库主分支(master)中的文件上传到GitHub,其中-u 选项是第一次push的时候使用,将本地和远程的master分支关联起来,并同步文件,以后就可以用命令git push origin master来推送代码到GitHub仓库。
执行如下命令git branch -a查看所有分支,会发现多了 remotes/origin/master 远程版本库分支。代码上传成功后,打开GitHub的项目主页面,刷新一下即可看见刚刚上传的文件。
3、下载GitHub仓库代码
Git可以使用http地址或者SSH指定 URL 来下载存放在GitHub上的代码。在GitHub代码仓库主页上点击”Clone or download”,会弹出如下提示:

我们可以把GitHub上的代码已压缩包的形式下载,也可以使用http地址或者SSH来下载存放在 GitHub上的代码。例如这里选择Clone with SSH,点击页面的复制图标把SSH URL地址复制下来,使用git clone命令下载整个项目的源代码:
|
$ git clone git@github.com:AP0904225/u-boot-2016.09-FriendlyARMTiny4412.git |
下载完成后会在当前目录多了一个u-boot-2016.09-FriendlyARMTiny4412的目录,该目录内容与GitHub的一模一样。如果只是想获取某一个分支的最新内容,只需使用git pull origin master命令,表示或其远程版本库origin的master分支的最新内容。
在GitHub上创建上传下载开源项目代码的更多相关文章
- Github上关于iOS的各种开源项目集合(强烈建议大家收藏,查看,总有一款你需要)
下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITableVie ...
- GitHub上史上最全的Android开源项目分类汇总 (转)
GitHub上史上最全的Android开源项目分类汇总 标签: github android 开源 | 发表时间:2014-11-23 23:00 | 作者:u013149325 分享到: 出处:ht ...
- github上关于iOS的各种开源项目集合(转)
UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh - 下拉刷新控件. MJRefresh - 仅需一行代码就可以为UITable ...
- 转: Github上关于iOS的各种开源项目集合
https://blog.csdn.net/jiashaoying/article/details/79079500 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. ...
- 使用Eclipse上传/下载Git项目
使用Eclipse上传/下载Git项目 前提: Eclipse已安装EGit插件 已拥有GitLab / GitHub / 其它Git托管服务账号 SSH方式 配置 配置Git信息 配置用户信息 Ec ...
- GitHub上最火的Android开源项目(一)
GitHub在中国的火爆程度无需多言,越来越多的开源项目迁移到GitHub平台上.更何况,基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要.利用这些项目,有时能够让你 ...
- Github上的几个C++开源项目
Github上的几个C++开源项目 http://blog.csdn.net/fyifei0558/article/details/47001677 http://www.zhihu.com/ques ...
- 2019年9月Github上最热门的JavaScript开源项目
2019年9月Github上最热门的JavaScript开源项目 前端开发 前端开发 微信号 qianduan1024 功能介绍 专注于Web前端技术文章分享,包含JavaScript.HTML5 ...
- Github上关于iOS的各种开源项目集合2(强烈建议大家收藏,查看,总有一款你需要)
资源list:Github上关于大数据的开源项目.论文等合集 Awesome Big Data A curated list of awesome big data frameworks, resou ...
随机推荐
- UVA - 437 The Tower of Babylon(dp-最长递增子序列)
每一个长方形都有六种放置形态,其实可以是三种,但是判断有点麻烦直接用六种了,然后按照底面积给这些形态排序,排序后就完全变成了LIS的问题.代码如下: #include<iostream> ...
- UVALive 6885 Flowery Trails
两次SPFA #include<cstdio> #include<cstring> #include<cmath> #include<vector> # ...
- 吾爱破解脱壳练习第五期------upx壳
内存镜像法: 载入OD:
- boost之词法解析器spirit
摘要:解析器就是编译原理中的语言的词法分析器,可以按照文法规则提取字符或者单词.功能:接受扫描器的输入,并根据语法规则对输入流进行匹配,匹配成功后执行语义动作,进行输入数据的处理. C++ 程序员需要 ...
- abstract class 与interface
一.抽象类(absteact class) 特点: 1.抽象方法只作说明,而不包含实现,可以看成是没有实现体的虚方法 2.抽象类不能被实例化.除此之外,具有类的其他特性 3.抽象类可以但不是必须有抽象 ...
- jna
http://topmanopensource.iteye.com/blog/1752355
- 之一 select模型
// select.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <WinSock2.h> #include ...
- ecos的app处理类
get 获取指定app的对象实例 参数 $app_name 返回指定app name的app类实例 app::get('desktop') render 获取base_render类的实例 base_ ...
- Android 程序的反破解技术
我们知道,利用 apktool 可以将 apk 反编译为 smali 文件,利用 dex2jar 也可以将 apk 反编译为 jar 文件.这样的话,破解者就可以根据关键代码(比如资源文件中的字符串) ...
- phpcms 细节
Phpcms V9采用if语句判断当前栏目高亮.判断分类信息是否过期 10月05, 2013 by SJY 在用PC V9建站的时候,很多朋友会想到Phpcms V9判定当前栏目,让当前栏目高亮的功能 ...