Git是一个开源的分布式版本控制工具,它的开发者就是Linux操作系统的作者Linus Tovarlds。Git被开发出来的初衷是为了更好的管理Linux内核,如今却被广泛地用于全球各大大中小型的项目中。接下来讲解一下Git的用法:
Git在linux下的安装时非常简单的,假设你用的是Ubuntu系统,你只需要在shell界面中输入:sudo apt-get install git-core即可完成对Git的安装了。由于我是在Windows上进行开发的,所以这篇文章是基于Windows上的Git来讲解的。Window上安装Git无法通过一串命令就能完成安装。首先,我们需要下载Git的安装包,网址是:http://msysgit.github.io/ 界面如图一:
图一
点击途中Download按钮即可开始下载。下载完之后一直点击下一步就可以完成安装了。
Windows下的Git是可以直接进行界面操作的,不过并不建议这样使用,Git命令才是我们要掌握的核心。不管你在哪个操作系统下,Git命令都是通用的。接下来我们再Git的安装路径中找到Git Bash并打开。首先要配置一下你的身份,命令如下所示:
git config --global user.name "MLDan"
git config --global user.email "[email protected]"
而查看是否配置成功只要将后面的名字和邮箱去掉并输入就可以验证,命令图二:
图二
这时候我们就可以奖励自己第一个代码仓库。在eclipse下新建一个android项目,命名为GitDemo(名字自己取),然后进入GitDemo的项目目录下,在这个目录下输入命令git init 。这样,就完成了代码仓库的创建,如图三所示:
图三
代码仓库创建完之后,会在GitDemo目录下生成一个.git文件,输入命令:ls -al可以查看,如图四所示:
图四
如果想要删除本地仓库,只要删除这个文件夹就行了。
在新建好的数据仓库中提交代码,只需要使用add和commit命令就行了。add命令只是用于把想要提交的文件先添加进去,commit命令才是真正地执行提交的操作。以project.properties为例,输入命令:git add project.properties;这是添加单个文件的方法,如果想要添加整个文件夹,可以以文件夹的名字作为参数,以src文件为例,执行命令:git add src;如果要添加整个项目的话就执行命令:git add . 如图五所示:
图五
执行完添加操作之后还要执行commit的操作,输入命令git commit -m "first commit";注意,-m后面的参数是来加上提交的描述信息的,没有加上是为不合法。如此,所有的代码就已经成功提交了。
对于新建好的代码仓库,我们应该去提交GitDemo项目中的代码,但是我们应该考虑一下是不是所有的文件都需要加入版本的控制器中。在Android的项目结构中,bin目录和gen目录里的文件是自动生成的,所以我们不需要把它们加入版本控制器中,否则可能对项目的自动生成造成影响。这种情况下,Git给我们提供一种机制,它允许用户将不需要的文件和目录排除在版本控制之外。它会去检查代码仓库根目录下是否存在一个.gitinore的文件,如果存在的话,它回去读取该文件,并将该文件中每一行描述的文件或者目录排除在外,如图六所示:
图六
这样表示就可以将bin目录和gen目录忽略掉了。这时候就可以去使用add命令和commit命令了。
在提交完项目代码之后,我们可能对项目代码进行维护和修改。修改到后面,你可能会忘记了自己修改了那些地方,这时候你就可以通过Git版本控制工具来查看自己的文件的修改情况,假设我们再MainActivity.java 的onCreate函数下添加这样一句代码String str = "Hello world";
package com.example.gitdemo;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String str = "Hello world";
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
这时候我们就可以通过执行命令:
git status 来查看修改的文件了,如图七所示:
图七
接下来我们可以通过执行命令:git diff 查看具体修改的情况,“+”号表示添加,“-”号便是删除,如图八所示:
图八
这个时候,如果我们想要将修改的代码提交上去就执行add和commit命令,但是如果我们觉得我们的代码写得有问题,想要撤销所有修改的内容。遇到这种情况,只要修改后的代码还没提交,我们就可以回到修改之前的代码状况。想要撤销就得执行checkout的命令,执行命令: git checkout src/com/example/gitdemo/MainActivity.java ,执行结果及代码如图九所示:
图九
5、查看提交记录
Git会帮我们记录每一次提交的记录以及修改的内容,我们可以执行命令: git log 查询提交记录,记录中包含了提交id、提交人、提交日期以及提交描述,如图十所示:
图十
接下来我们可以根据提交的id查看具体修改了什么内容,执行命令:git log 7898d78c4d65bbe6397e5676e78c5507866ea56f -1 -p,结果如图十一所示:
图十一