一、Git时间——初始版本控制工具
1.安装Git
1)由于Git和Linux是同一个作者,因此Git在Linux上安装是最简单方便的
如果使用的是Ubuntu系统,只需要打开shell界面,并输入:sudo apt-get install git-core
然后回车后输入密码,即可完成Git安装
2)Windows系统安装:
先访问网址http://git-for-windows.github.io/,将Git安装包下载下来点击Download按钮,下载完成后点击安装包进行安装,一直点击“下一步”完成安装。
2.创建代码仓库
1)图形化界面可以操作。
2)命令方式操作:
Linux系统先打开shell界面,Windows系统就从开始里找到Git Bash并打开。
首先配置身份:(姓名和邮箱地址)
git config --global user.name "Tony"
git config --global user.email "tony@gmail.com"
配置完后还可以使用同样的命令来查看是否配置成功,只需要将最后的名字和邮箱地址去掉即可然后开始创建代码仓库:
如果需要给一个项目建立一个代码仓库,需要先进入到这个项目的目录下,然后输入git init命令即可
仓库创建完成后,会在该项目的根目录下生成一个隐藏的.git文件夹,这个文件夹就是用来记录本地所有的Git操作的,可以通过ls -al 命令来查看
如果想要删除本地仓库,只需要删除这个文件夹即可
3.提交本地代码
只需要使用add和commit命令即可完成。(add用于将想要提交的代码添加进来,commit则是真正的去执行提交操作)
git add build.gradle (将build.gradle单个文件进行添加)
git add app (将app文件夹进行添加)
git add . (添加所有的文件)
git commit -m "First commit" (提交,提交的时候一定要通过-m参数来加上提交的描述信息)
二、Git时间——版本控制工具进阶
1.忽略文件
代码仓库创建好了之后,需要去提交项目中的代码,提交之前需要思考是不是所有的文件都需要加入到版本控制当中呢?
Git提供了一种可配性很强的机制来允许用户将制定的文件或目录排除在版本控制之外,它会去检查代码仓库的目录下是否存在一个名为.gitignore的文件,如果存在的话就一行行读取这个文件中的内容,并把每一行指定的文件或目录排除在版本控制之外,文件和目录可以使用"*"通配符。
Android Studio在创建项目的时候会自动帮我们创建出两个.gitignor文件,一个在根目录下,一个在app模块下。我们可以对这两个文件进行任意修改添加:
eg:编辑文件里的内容:/build
/src/test
/src/androidTest
再使用add命令将所有文件进行添加 (添加到本地版本库)
git add. //这时候就不会添加上.gitignor文件中的目录内容
最后进行完成提交:(在本地执行的)
git commit -m "First commit"
2.查看修改内容
由于代码进行了第一次提交后,后面还可能会对项目不断地进行维护或添加新的功能,但是如果某个功能牵扯到的代码比较多,有可能写到后面的时候就以及忘记前面修改了什么东西了。
git status //查看自上次提交后文件有没有发生改变,查看有无可提交的文件
git diff //可以查看所有文件更改的内容
git diff app/src/main/java/com/MainActivity.java //查看MainActivity这个文件更改的内容,减号代表删除的部分,加号代表添加的部分
3.撤销未提交的修改
git checkout app/src/main/java/com/MainActivity.java //适用于还没有执行过add命令的文件
//执行这个命令之后,我们对MainActivity这个文件所做的一切修改就应该都被撤销了。
git reset HEAD app/src/main/java/com/MainActivity.java
//上面这个命令是用于将已经add过的文件,取消add,然后再次checkout撤销
4.查看提交记录
git log //查看历史提交信息
git log 该记录的id -1 //查看其中一条记录
git log 该记录的id -1 -p //查看这条提交记录具体修改了什么内容
三、Git时间——版本控制工具的高级用法
1.分支的用法
在现有代码的基础上开辟一个分叉口,使得代码可以在主干线和分支线上同时进行开发,且相互之间不会影响。
git branch //查看当前版本库当中有哪些分支
git branch version1.0 //创建一个名为version1.0的分支
(分支前有一个*号表示这个是当前正在使用的分支)
git checkout version1.0 //切换到version1.0分支上
注意:两个分支的上的代码是互不影响的,因此若是在分支A上修复的bug,分支B也依旧存在
git checkout 分支B
git merge 分支A
//以上两行命令作用是将分支A修改并提交的内容合并到分支B上,实现修复好了分支B的bug
git branch -D version1.0 //将version1.0分支删除掉
2.与远程版本库协作
例:一个远程版本库的Git地址是:https://github.com/example/test.giit
git clone https://github.com/example/test.git //将代码下载到本地,将远程版本库克隆到本地
git push 远程版本库的Git地址 分支 //将本地修改的内容同步到远程版本库的分支上
git fetch 远程版本库的Git地址 分支 //将远程版本库的代码同步到本地
//从远程版本库上同步下来的代码并不会合并到任何分支上,只是会存放到分支上
git diff 远程版本库的Git地址/分支 //通过diff命令查看远程版本库上到底修改了什么东西
git merge 远程版本库的Git地址/分支 //将分支上的修改合并到主分支上
git pull 远程版本库的Git地址 分支 //从远程版本库上获取最新的代码并且合并到本地
其他额外学习部分:
Git,Gerrit,Repo三者的区别及使用:http://t.csdn.cn/YJxLD