GitHub是基于git实现的代码托管。git是目前最好用的版本控制系统了,很是受欢迎,比之svn更好。git
GitHub能够无偿使用,而且快速稳定。即便是付费账户,每月不超过10美刀的费用也很是便宜。github
利用GitHub,你能够将项目存档,与其余人分享交流,并让其余开发者帮助你一块儿完成这个项目。优势在于,他支持多人共同完成一个项目,所以大家能够在同一页面对话交流。算法
建立本身的项目,并备份,代码不须要保存在本地或者服务器,GitHub作得很是理想。shell
1、建立Github仓库windows
1-1 登陆github缓存
github的官方网址:github.com ,若是没有帐号,赶忙注册一个。 安全
点击Sign in进入登陆界面,输入帐号和密码登入github。 bash
1-2 建立repository(仓库) 服务器
下面是建立仓库信息,只有名字是必填项,如今我建立了一个仓库叫:VerticalViewPager 网络
建立成功后,能够看到本身的仓库地址,如此,个人远程免费的仓库就建立了。它还介绍了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 //把本地库的全部内容推送到远程库上
2、安装git客户端
Git是目前世界上最早进的分布式版本控制系统,它有如下特色:
分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具;
保存点 : Git的保存点能够追踪源码中的文件, 并能获得某一个时间点上的整个工程项目额状态; 能够在该保存点将多人提交的源码合并, 也能够会退到某一个保存点上;
Git离线操做性 :Git能够离线进行代码提交, 所以它称得上是彻底的分布式处理, Git全部的操做不须要在线进行; 这意味着Git的速度要比SVN等工具快得多, 由于SVN等工具须要在线时才能操做, 若是网络环境很差, 提交代码会变得很是缓慢;
Git基于快照 : SVN等老式版本控制工具是将提交点保存成补丁文件, Git提交是将提交点指向提交时的项目快照, 提交的东西包含一些元数据(做者, 日期, GPG等);
Git的分支和合并 : 分支模型是Git最显著的特色, 由于这改变了开发者的开发模式, SVN等版本控制工具将每一个分支都要放在不一样的目录中, Git能够在同一个目录中切换不一样的分支;
分支即时性 : 建立和切换分支几乎是同时进行的, 用户能够上传一部分分支, 另一部分分支能够隐藏在本地, 没必要将全部的分支都上传到GitHub中去;
分支灵活性 : 用户能够随时 建立 合并 删除分支, 多人实现不一样的功能, 能够建立多个分支进行开发, 以后进行分支合并, 这种方式使开发变得快速, 简单, 安全。
2-1 下载git客户端
官方下载地址:git-scm.com/download/ 根据你本身的系统 下载对应版本
2-2 安装客户端
下载好以后咋们开始安装吧,欢迎界面,下一步。
选择安装路径,千万别选带中文的路径,有时候会引发没必要要的误会。
选择安装组件,按默认的来就行了。 1)图标组件(Addition icons) : 选择是否建立快速启动栏图标 或者 是否建立桌面快捷方式; 2)桌面浏览(Windows Explorer integration) : 浏览源码的方法, 单独的上下文浏览 只使用bash 或者 只用Git GUI工具; 高级的上下文浏览方法 使用git-cheetah plugin插件; 3)关联配置文件(Associate .git*) : 是否关联git配置文件, 该配置文件主要显示文本编辑器的样式; 4)关联shell脚本文件(Associate .sh) : 是否关联Bash命令行执行的脚本文件; 5)使用TrueType编码 : 在命令行中是否使用TruthType编码, 该编码是微软和苹果公司制定的通用编码;
设置开始菜单中快捷方式的目录名称,默认就好,下一步吧
设置环境变量 : 选择使用什么样的命令行工具, 通常状况下咱们默认使用Git Bash便可, 默认选择; 1)Git自带 : 使用Git自带的Git Bash命令行工具; 2)系统自带CMD : 使用Windows系统的命令行工具; 3) 两者都有 : 上面两者同时配置, 可是注意, 这样会将windows中的find.exe 和 sort.exe工具覆盖, 若是不懂这些尽可能不要选择;
选择换行格式 ,依然是默认就好。 1)检查出windows格式转换为unix格式 : 将windows格式的换行转为unix格式的换行在进行提交; 2)检查出原来格式转为unix格式 : 无论什么格式的, 一概转为unix格式的换行在进行提交; 3)不进行格式转换 : 不进行转换, 检查出什么, 就提交什么;
选择终端模拟器,依然默认就好
1)使用MinTTY,就是在Windows开了一个简单模拟Linux命令环境的窗口Git Bash
2)使用windows的系统的命令行程序cmd.exe
选择默认就好,不用文件系统缓存
安装中……
git终于安装成功咯。
2-3 绑定用户
打开git-bash.exe,在桌面快捷方式/开始菜单/安装目录中
由于Git是分布式版本控制系统,因此须要填写用户名和邮箱做为一个标识,用户和邮箱为你github注册的帐号和邮箱
ps:git config –global 参数,有了这个参数,表示你这台机器上全部的Git仓库都会使用这个配置,固然你也能够对某个仓库指定的不一样的用户名和邮箱。
3、为Github帐户设置SSH key
众所周知ssh key是加密传输。
加密传输的算法有好多,git使用rsa,rsa要解决的一个核心问题是,如何使用一对特定的数字,使其中一个数字能够用来加密,而另一个数字能够用来解密。这两个数字就是你在使用git和github的时候所遇到的public key也就是公钥以及private key私钥。
其中,公钥就是那个用来加密的数字,这也就是为何你在本机生成了公钥以后,要上传到github的缘由。从github发回来的,用那公钥加密过的数据,能够用你本地的私钥来还原。
若是你的key丢失了,不论是公钥仍是私钥,丢失一个都不能用了,解决方法也很简单,从新再生成一次,而后在github.com里再设置一次就行
3-1 生成ssh key
首先检查是否已生成密钥 cd ~/.ssh,ls若是有3个文件,则密钥已经生成,id_rsa.pub就是公钥
也能够打开个人电脑C:\Users\Administrator.ssh 里面找到
若是没有生成,那么经过$ ssh-keygen -t rsa -C “6215048wjl@163.com”来生成。
1)是路径确认,直接按回车存默认路径便可
2)直接回车键,这里咱们不使用密码进行登陆, 用密码太麻烦;
3)直接回车键
生成成功后,去对应目录C:\Users\Administrator.ssh 里,用记事本打开id_rsa.pub,获得ssh key公钥
3-2 为github帐号配置ssh key
切换到github,展开我的头像的小三角,点击settings
而后打开SSH keys菜单, 点击Add SSH key新增密钥,填上标题,跟仓库保持一致吧,好区分。
接着将id_rsa.pub文件中key粘贴到此,最后Add key生成密钥吧。
如此,github帐号的SSH keys配置完成。
4、上传本地项目到github
4-1 点击复制SSH地址备用
4-2.接下来就到本地操做了,首先右键你的项目,若是你以前安装git成功的话,右键会出现两个新选项,分别为Git Gui Here,Git Bash Here,这里咱们选择Git Bash Here,进入以下界面,VerticalViewPager即为个人项目名。
4-3.接下来输入以下代码(关键步骤),把github上面的仓库克隆到本地
git clone github.com/longxuanzhi…
4-4.这个步骤之后,你的本地项目文件夹下面就会多出个文件夹,该文件夹名即为你github上面的项目名,如图我多出了个VerticalViewPager文件夹,咱们把本地项目文件夹下的全部文件(除了新多出的那个文件夹不用),其他都复制到那个新多出的文件夹下,
4-5.接着继续输入命令 cd VerticalViewPager,进入VerticalViewPager文件夹
4-6.接下来依次输入如下代码便可完成其余剩余操做:
git add . (注:别忘记后面的.,此操做是把VerticalViewPager文件夹下面的文件都添加进来)
git commit -m "提交信息" (注:“提交信息”里面换成你须要,如“commit”)
git push -u origin master (注:此操做目的是把本地仓库push到github上面,此步骤须要你输入账号和密码)
5、操做完成,上传完成以后就能够在Github上看到本地上传的项目了。
如下是我的公众号(longxuanzhigu),以后发布的文章会同步到该公众号,方便交流学习Android知识及分享我的爱好文章: