在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 ...
随机推荐
- sites
search http://213.240.44.13/ http://1.179.252.95/
- MVC 创建Word文档
/// <summary> /// 创建一个word /// </summary> /// <returns></returns> public Act ...
- Ubuntu和Redhat(Debian)的差别
这两个最大的区别在包管理模式上. 都是用的Linux核心构架的. Redhat主要集中在 企业级服务器版的制作 是推动LINUX商业化最成功的公司 Redhat对应的桌面版制作 都是由Fedora社区 ...
- css position relative obsolution
层级关系为:<div ——————————— position:relative; 不是最近的祖先定位元素,不是参照物<div—————————-没有设置为定位元素,不是参照物<di ...
- QT中LineEdit、TextEdit 、PlainTextEdit 三个控件的区别
QLineEdit是单行文本输入,一般用于用户名.密码等少量文本交互地方.QTextEdit用于多行文本,也可以显示HTML格式文本.QPlainTextEdit与QTextEdit很像,但它多用于需 ...
- 生日蛋糕(DFS)
题意: Description 7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体. 设从下往上数第i(1 <= i <= M)层蛋糕 ...
- UIApplication,UIWindow,UIViewController,UIView(layer)
转载自:http://www.cnblogs.com/iCocos/p/4684749.html UIApplication,UIWindow,UIViewController,UIView(laye ...
- 让你的MyEclipse具有jquery自动提示
想让你的MyEclipse支持Jquery的自动提示更简单一些,照下图完成即可: 照上面图示已经完成了Jquery自动提示的配置,此时spket已经有两种AJAX库的自动提示,通过右边的De ...
- HDU 5438 拓扑排序+DFS
Ponds Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Sub ...
- Spring MVC 与ExtJS完美集成
http://blog.csdn.net/q262800095/article/details/12021191 http://www.jb51.net/article/25267.htm