`

git--02忽略文件、查看修改内容、撤销未提交的修改、查看提交记录

阅读更多

1.忽略文件

bin和gen目录是自动生成的,我们不该把它们添加到版本控制中。否则可能会对文件的自动生成造成影响。

Git提供了一种可配性很强的机制允许用户将指定的文件或目录排除在版本控制之外。它会检查代码仓库的根目录下是否存在一个名为.gitignore的文件。如果存在的话,就会逐行读取这个文件中的内容。并把每行指定的文件或目录排除在版本控制之外。注意该文件中指定的文件或目录是可以使用"*"通配符的。

现在我们在ProviderTest项目的根目录下创建一个名为.gitignore的文件,然后编辑文件中的内容。



 这样就表示bin和gen目录下的所有文件都忽略掉,从而使它们不会加入到版本控制当中。

排除这两个目录后,我们可以提交代码了。

 

2.查看修改内容

在进行了第一次提交代码后,我们后面还可能会对项目不断地进行维护,添加新功能等。比较理想的情况是每当完成了一小块功能,就执行一次提交。但某个功能牵扯的代码比较多的时候,有可能写到后面我们就已经忘记前面修改了什么东西。遇到这种情况,可以通过Git来查看上次提交后文件修改的内容。

查看文件修改情况的方法非常简单,在项目的根目录输入如下命令:

git status



 可以看到Git提醒我们MainActivity.java这个文件已经发生了更改。那么如何才能看到更改的内容呢?这需要借助diff命令。用法如下:

git diff



 这样可以查看到所有文件的更改内容,其中减号代表删除的部分,加号代表添加的部分。从图中我们可以看到书的价格由55.55被修改成66.55。

 

如果只想查看MainActivity.java文件的更改内容,可以使用如下命令:

git diff src/com/example/providertest/MainActivity.java

 

3.撤销未提交的修改

有的时候我们写的代码可能会影响到原本正常的功能,遇到这种情况,只要代码还未提交,所有修改的内容都是可以撤销的。

比如上节中我们修改了书的价格,通过status命令查看,然后现在撤销这个修改可以使用如下命令:

git checkout src/com/example/providertest/MainActivity.java

执行了这个命令后,我们的修改就被撤销了。重新运行git status命令检查一下。


 可以看到当前没有任何可提交的文件,说明撤销操作成功了。

 

不过这种撤销方式只适用于没有执行过add命令的文件,如果某个文件已经添加过,这种方式就无法撤销其修改的内容。


 我们做个实验试试。

修改书的价格,执行git add .把所有修改的文件都添加进去。用git status检查一下。


 

现在我们再执行一遍checkout命令,你会发现MainActivity仍然处于添加状态。所修改的内容无法撤销。



 

遇到这种情况,我们需要先对已添加的文件进行取消添加,然后才可以撤回提交。取消添加的命令如下:

git reset HEAD src/com/example/providertest/MainActivity.java

然后再运行一遍git status,你会发现MainActivity.java重新变回了未添加状态,此时就可以使用checkout命令将修改的内容进行撤销了。



 
 4.查看提交记录

当ProviderTest项目开发了几个月后,我们可能已经执行过上百次操作,这个时候你已经忘记每次提交都修改了哪些内容。没关系,Git一直都帮我们清清楚楚地记录着。可以使用log命令查看历史提交信息。用法如下:

git log



 可以看到,每次提交记录都会包含提交id、提交人、提交日期,和提交描述。

当提交记录非常多的时候,如果我们只想查看其中一条记录,可以在命令中指定记录的id,并加上-1参数表示我们只想看到一行记录。如下所示

git log 2e7c0547af28cc1e9f303a4a1126fddbb704281b -1

而如果想要查看这条记录提交记录具体修改了什么内容,可以在命令中假如-p参数,命令如下

git log 2e7c0547af28cc1e9f303a4a1126fddbb704281b -1 -p



 

  • 大小: 7 KB
  • 大小: 8.2 KB
  • 大小: 23.5 KB
  • 大小: 15.5 KB
  • 大小: 7.9 KB
  • 大小: 9 KB
  • 大小: 20.3 KB
  • 大小: 16.8 KB
  • 大小: 19.9 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics