Android Studio 2.0 Beta 6 中配置强大的版本控制系统(Git篇)
本人使用win(最烂的开发平台),话不多说,直接开干。
1、安装Git
第一步首先你需要安装Git版本管理工具。
Windows下要使用很多Linux/Unix的工具时,需要Cygwin这样的模拟环境,Git也一样。Cygwin的安装和配置都比较复杂,就不建议你折腾了。不过,有高人已经把模拟环境和Git都打包好了,名叫msysgit,只需要下载一个单独的exe安装程序,其他什么也不用装,绝对好用。
msysgit是Windows版的Git,然后按默认选项安装即可。
下载地址:https://git-for-windows.github.io/
安装完成后,在开始菜单里找到“Git”->“Git Bash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!
安装完成后,还需要最后一步设置,在命令行输入:
$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
注意git config命令的–global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
2、新建一个本地空仓库
接着在这里点击右键,执行 git bash here
输入 命令行 git init
对应的,在当前目录下会出现一个.git文件。
此时,新建一个android studio 项目。
当进入以后会出现
此时左边的有些文件是红色的。
3、add project
右击项目,选择git 再选add
这一步执行之后呢,刚才的红色文件变成了绿色。
那么,怎么上传代码呢?
配置成功后一定会出现、
你一定不会陌生的。
点击了上传的图标以后,我们可以选择commit(因为还没有配置远程仓库,所以commit and push不推荐)
注意:commit的时候一定要填写commit massage。
在继续阅读后续内容前,请自行注册GitHub账号。由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa和id_rsa.pub这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容:
点“Add Key”,你就应该看到已经添加的Key:
确保你拥有一个GitHub账号后,我们就即将开始远程仓库的学习。
首先,登陆GitHub,然后,在右上角找到“Create a new repo”按钮,创建一个新的仓库:
在Repository name填入(任意名称,最和项目名称一致),其他保持默认设置,点击“Create repository”按钮,就成功地创建了一个新的Git仓库:
接下来我们就可以去push了。
右击项目,点击git,选择Repository,选择push。
此时会出现
此时的url见上图(去找你自己的ssh),填上来,ok了。
如果你的push被拒绝的话,那么我们可以这样来解决
在 git bash here中输入命令行:
git pull --rebase origin master
这一步操作的前提条件是分支不要变, 即origin
之后我们再次执行push步骤。
ok,我们成功了!
更多的情况,我现在没有遇到过,我也是最近由于一些原因,才开始使用git提交代码的。如果大家的代码不想被公开的话,推荐大家使用oschina或者coding。如果有问题,欢迎留言,或者使用老马q我。详情见我的详细资料。