Git是一个开源式的分布式版本控制工具,它的开发者是Linux操作系统的作者Linus Torvalids。现在很多公司都用git作为版本控制工具,很多人都说用了git,就不想再用svn了,哈哈。今天我就总结一下git的基本用法。
安装git
如果你们公司很牛逼,使用的是Ubuntu系统,那么只需要打开shell界面,输入
sudo apt-get install git -core
按下回车键后输入密码,即可完成Git的安装。
不过现在大部分人用的还是Windows操作系统,那么我们就需要访问网址下载Windows版Git,去安装Git。
创建代码仓库
虽然Windows上安装的Git是可以在图形界面上进行操作的,并且AS也支持以图形化的形式去操作Git。但是我不建议这么做,我们还是要掌握Git的各种命令。
找到Git Bash并打开。
首先应该配置一下你的身份,主要是为了识别哪些代码是谁提交的。命令如下:
git config --global user.name "zhengpf"
git config --global user.email "zhengpf@gmail.com"
配置完成后,你还可以使用同样的命令查看自己是否配置成功,只需要将最后的名字和邮箱地址去掉即可。
要想为我们的项目建立一个代码仓库,需要先进入到我们项目的目录下面,然后输入如下命令
git init
是不是很简单啊,一行命令就完成了创建代码仓库的操作。创建完成后,你会看到根目录下会生成一个隐藏的.git文件夹,这个文件夹是用来记录本地所有的Git操作的。
这个时候我们就可以提交我们的项目到我们刚刚建立好的代码仓库了,当然这个时候你可能会想到是不是把所有文件都加入到版本控制呢?怎样把不需要的文件或目录排除在版本控制之外呢?这个时候,你就去找项目下的.gitignore文件,如果你看过我之前的博客,一定知道这个文件就是记录不需要上传的文件的。
比如你不想把app->src下的test和androidTest目录下的文件提交上去,那么你就可以在这个文件中这么写:
/src/test
/src/androidTest
这样你在提交当前目录下的所有文件时,test和androidTest目录就会被忽略。
提交本地代码
如果我们需要添加一个文件,则执行如下命令
git add build.gradle
如果是一个目录,则可以输入如下命令
git add app
这样也许你会觉得麻烦,可不可以一次性添加所有文件呢?当然可以,命令如下
git add .
添加完文件后,千万不要忘了提交,输入如下命令进行提交
git commit -m "test git"
注:我们一定要通过-m参数来加上提交的描述信息,没有描述信息的提交被认为是不合法的。
查看修改内容,当前目录下修改的文件有哪些
git status
查看所有文件的更改内容
git diff
查看某一个文件更改的内容,+号代表添加的部分,-号代码删除的部分
git diff app/src/main/java/com/example/test/MainActivity.java
撤销未提交的修改
git checkout app/src/main/java/com/example/test/MainActivity.java
当然这种办法只适用于还没有执行过add命令的文件,如果已经执行过,是无法撤销修改的。需要先执行rest命令撤销添加。
git reset HEAD app/src/main/java/com/example/test/MainActivity.java
然后再执行checkout命令就可以撤销修改了
查看提交记录
git log
如果我们执行查看其中一条记录,可以指定该记录的id,就是commit id,加上-1代表着你只查看一条记录
git log commitId -1
如果想看这条提交记录具体修改了什么内容,可以在命令中加入-p参数
git log commitId -1 -p
如何创建一个分支?创建一个分支后,我们可以继续在主分支上开发,如果分支出现问题,我们可以修改后提交到分支,并合并到主分支上,适用于团队开发
git branch version1.0
如何切换分支?比如我们现在master主分支上要切换到version1.0
git checkout version1.0
我们查看一下当然有哪些分支,且当前分支是哪个。
git branch
其中前面带*的就是当前分支
我们如何把version1.0上的代码合并到主分支上
git checkout master
git merge version1.0
如果有一天我们不需要version1.0这个分支了,我们可以删除它
git branch -D version1.0
如果要进行团队开发,我们需要一个远程的版本库,团队中的每个成员都可以从这个版本中得到最原始的代码,然后各自开发同步。
git clone https://github.com/example/test.git
怎样才能把本地修改的内容同步到远程版本库上呢?
git push origin master
origin是指远程版本库的Git地址,master是指同步到哪一个分支上
如何把远程版本库的代码更新到本地?有两种方法fetch和pull
git fetch origin master
git merge origin/master
先把远程版本库的代码存放到origin/master上,然后再合并到主分支上。而用pull命令,则会把这两个命令放在一起执行,可以从远程版本库获取最新代码更新到本地
git pull origin master
后续我会持续更新git的使用方法,请喜欢的同学们持续关注,哈哈!