环境: Ubuntu14.04 64bit、Windows 10 64bit、Android Studio 1.5、IDEA15.0、Terminal
Git安装(Ubuntu)
sudo apt-get install git
Git安装(Windows)
下载安装文件,地址:https://git-for-windows.github.io/
安装完成后,可以在开始菜单中找到Git Bash(命令行操作)和Git GUI(图形界面操作),看个人喜好选择
使用Github建立远程库
a)登陆到Github网站上,点击右上角加号创建仓库
b)创建界面如图,并作如下选择;private是收费的
c)创建成功,该仓库是空的,可以根据下面提示进行初始化;推荐使用ssh协议,由于其传输速度快,安全性高
上图有三种方式
(1)在本地新建一个仓库,并上传到Github
(2)本地已经存在仓库,直接上传到Github
(3)从其他类型的仓库导入
其中第一种包含了第二种,下面只介绍第一种方式
在本地创建仓库,并上传
a)选择一个文件夹,假设当前操作文件夹为:GitDemo
b)进入该目录,进行初始化,会在GitDemo目录下生成一个.git目录,命令如下
git init
c)创建成功,在该目录下随便创建一个文件,假设ReadMe.md;然后将这个文件添加到暂存区,命令:
git add ReadMe.md(添加指定文件)
git add -A(添加所有修改过的文件)
d)然后commit,此时是提交到本地仓库,不是提交到Github,要注意!!
e)此时,本地仓库已经有内容了,然后添加远程仓库(也就是Github创建的仓库),命令如下:
git remote add origin git@github.com:XXX/Git.git(添加远程仓库)
origin:是为远程仓库起的名字,一般使用origin,也可使用其他名字。
git remote -v(查看远程仓库信息,可用于验证是否正确添加)
f)将本地仓库的内容推送到Github仓库
git push -u origin master
命令含义:上传到远程仓库origin的master的分支;-u : 设置本地master分支和远程仓库origin中master分支的关联。
g)重新进入Github网站上的仓库,可以看到上传的文件
常见场景和操作
场景1:此时你Github上仓库已经有了,你到了另一台电脑上,想要在新电脑上将远程库clone下来,先找到一个目标目录,然后输入命令:
git clone git@github.com:XXX/Git.git(在本地克隆远程库)
场景2:此远程仓库有多个用户使用,其他用户提交的修改,如何同步到本地,然后输入命令:
git pull origin master(从远程的master分支更新仓库)
如果从远程库的其他分支更新文件,直接将master换成其他分支的名字即可。
场景3:从origin同步下来之后,需要开发新功能,此时最好不要直接在master上修改,需要新建分支,开发完成后合并到master分支,然后提交到origin:
git brance win(创建win分支)
git checkout win(切换当前分支为win)
git checkout -b win(创建win分支并切换分支)
git brance(查看当前分支)
add命令和commit命令与上面相同操作
commit完成后,切换到master分支并合并
git checkout master
git merge win(将win分支合并到master)
提交master即可。
场景4:用户A向远程库提交了一个新分支newBrance;用户B想同步该分支newBrance,此时用户B本地已有仓库和分支;但没有和远程库中newBrance分支关联的本地分支,此时需要有个本地分支与其关联,命令如下:
git branch –set-upstream newBrance origin/newBrance
Android Studio中Git的使用
a)将同步到本地的工程导入AS中,具体参见
b)导入后在右上角有提示,提示使用Version Control,选择即可,成功使用Git后,在AS下方会有如下标签:
c)右击工程选择“Git” 中有Git的相关操作,其中“Repository”中有重要操作,比如:合并修改,分支,Tag,Pull,Push等操作
d)AS中的git冲突处理是图形化界面,其中蓝色表示修改、绿色表示添加,灰色表示删除,红色是冲突部分!!!
e)在Version Control中的标签Local Changes:表示本地修改文件,已经自动执行了git add命令
e)在Version Control中的标签Log:表示仓库的提交和合并分支的记录
e)在Version Control中的标签Console:表示AS中的一些操作对应的git命令
注意: AS中的操作与git命令严格对应,很好理解,记得向远程库推送要使用push命令。