版本控制工具–git,以及多电脑使用同一github账号协同开发
版本控制工具是开发中必不可少的,常见的以及常使用的版本控制工具有git和svn。git是典型的分布式版本控制工具,不需要网络也可以提交代码,即每个设备都是一个仓库。svn是典型的集中式版本控制工具,即需要一个中心仓库,其他设备提交代码需要网络连接上中心仓库。两种版本控制工具各有利弊以及适合其使用的环境。
1.windows上安装git
从Git官网下载一个Git安装包,官网地址为:http://git-scm.com/downloads;
选择windows版本的git安装包下载。开始安装一路next就可以了。
安装完成后,找到工作目录(h:\gitdemos)右键点击出现如下图:
其中有Git GUI Here和Git Bash Here说明安装完成了。
2.ubuntu上安装git
有的ubuntu系统是自带git的(ubuntu16.04),可以在终端控制台输入git –version,如果出现下面提示说明没有安装。
在控制台使用sudo apt-get install git,输入密码就可以安装了。安装完成后在控制输入git –version如图说明安装完成,版本号为2.7.4:
1.windows上创建仓库
进入工作目录如h:\gitdemos\gittest,右键然后点击Git Bash Here,出现下图:
输入git init 将当前目录初始化为git仓库,会在文件目录下生成.git文件夹。
在当前目录下创建新文件hello.java,终端输入git add hello.java添加文件,输入git commit hello.java -m “add hello.java”提交文件。
2.ubuntu上创建仓库
在ubuntu上创建仓库和windows上差不多,进入工作目录,在终端输入git init初始化仓库,创建文件并提交,如下图:
git init//创建仓库
git add gitlearn.txt//保存暂存区
git commit gitlearn.txt -m “crate file gitlearn.txt”//提交git 默认分支master
git log //提交记录
git reset –hard HEAD^ //回退上个版本
git reset –hard 9789676//回退指定版本
git reflog //记录每次的git命令
git status//查看git状态
git diff HEAD – gitlearn.txt//查看工作区与版本库区别
git checkout – gitlearn.txt//丢弃工作区的修改 未add时,实质用版本库里的版本替换工作区的版本
git reset HEAD gitlearn.txt//已经add后,暂存区修改撤销
git rm test.txt//删除文件,再提交
git remote add origin [email protected]:账号名/项目名.git//关联远程库,名字origin
git push origin master//将master分支push到远程仓库
git clone [email protected]:账号名/项目名.git//克隆远程仓库到本地库
git checkout -b dev//创建分支dev
git branch//查看分支
git checkout master//切换回master分支
git merge dev//合并分支
git branch -d dev//删除分支
git merge –no-ff -m “merge with no-ff” dev//冲突合并
git stash//保存工作现场
git stash list//查看工作现场
git stash pop//恢复并删除现场的备份
git stash apply stash@{0}//恢复指定现场
git remote -v//查看远程库信息
git push origin master//向远程库提交分支master,也可以提交dev
git checkout -b dev origin/dev//拉取远程库的dev分支到本地
git branch –set-upstream dev origin/dev//抓取前要本地分支与远程分支关联
git pull//抓起远程库最新后才能提交
比如我有两台电脑一台公司的工作电脑,一台是自己的笔记本,有开发项目需要再公司和回家都能开发,所以就使用github服务器来协同开发(github有私有库和开源库,请选择使用)。
1.注册github账号,具体注册流程请看官网或百度。
2.因为github使用SSH认证的,所有每台电脑都要在github上添加SSH的公钥。
首先查看电脑上有没有SSH.
(1)windows上依次进入c:—>用户(user) –>用户名。在当前目录查看有没有.ssh目录,如果有进入.ssh,查看有没有id_rsa和id_rsa.pub,如果有则打开id_rsa.pub,复制内容设置到github的SSH and GPS keys上,具体如下图:
点击Settings进入设置页面,点击SSH and GPS keys,再点击右上角New SSH Key将id_rsa.pub里面的值复制进去,确定即可。
如果没有.ssh ,则打开命令行输入以下命令:ssh-keygen -t rsa -C “email”,其中email为自己的邮箱地址。就会在c:\用户\用户名.ssh,中生成id_rsa和id_rsa.pub。然后将id_rsa.pub,复制内容设置到github的SSH and GPS keys上。
(2)ubuntu的SSH设置方法类似的,在/home/用户目录下查找SSH,没有就ssh-keygen -t rsa -C “email”,生成并添加到github上。
3.将本地项目关联到github上
如果本地已经有一个创建好的仓库需要关联到github上,首先在github上创建仓库
输入仓库名字,然后点击Create repository。即在github上创建了一个仓库,这是仓库是空的,然后进入本地git仓库使用git命令:git remote add origin [email protected]:账号名/项目名.git 这样就将本地项目与github关联,然后执行git命令:git push -u origin master即将本地仓库推送至github的master分支。
4.使用Android studio关联git及github
配置git:打开Android studio,点击 File –> Settings –>Version Control –> Git,如图配置Git的安装路径,SSH使用native,分支master即可。点击test按钮,弹出下面的框Successfully,说明git配置成功。
配置github:打开Android studio,点击 File –> Settings –>Version Control –> Github,如图输入Host:github.com,用户名,密码,Auth Type为Password,配置好点击test,弹出下面的框successful说明配置成功。
下面配置.gitignore文件将不需要上传git的文件添加进去,一般配置:
module的gitignore的配置:
*.apk
*.ap_
*.dex
*.class
bin/
gen/
out/
.gradle/
build/
local.properties
proguard/
*.log
.navigation/
captures/
*.iml
.idea/workspace.xml
.idea/libraries
*.jks
工程的gitignore的配置:
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
配置好之后点击相关按钮进行pull和push操作。
只要一台电脑将项目push到github上,其他电脑只要执行git命令:git clone [email protected]:账号名/项目名.git 。将github上的项目克隆到本地,然后由于其他电脑的SSH公钥也已经配置到github上了,所以可以修改代码然后push到github上,这样就实现了多要电脑使用同一github账号协同开发。
git和github没有必然的联系,git是版本控制工具,没有github也可以使用。github是远程服务器,由于git是分布式版本控制工具,所以可以在github上创建一个仓库,作为一个”中心库”,便于协同开发。如有问题欢迎提问。