前面我们学习了Git最基本的用法,包括安装Git、创建代码仓库,以及提交本地代码。下面我们将学习Git更多的使用技巧,在开始之前,我们先给一个项目创建代码仓库,这里选择在ProviderTest项目中创建,打开Git Bash,进入到项目的根目录下,然后执行:git init命令,如下所示:

一、忽略文件
  我们在提交项目的时候,不是所有的文件都需要加入到版本控制当中,Git提供了一种可配性很强的机制来允许用户将指定的文件或目录排除在版本控制之外,它会检查代码仓库的目录下是否存在一个名为:(.gitignore)的文件,如果存在的话,就去一行一行读取这个文件中的内容,并把每一行指定的文件或目录排除在版本控制之外。注意:(.gitignore)中指定的文件或目录是可以使用“*”通配符的。

  Android Studio在创建项目的时候自动为我们创建了两个(.gitignore)文件,一个在根目录下,一个在app目录下,首先看一下根目录下的(.gitignore)文件(如图所示),通常这部分内容都是不用添加到版本控制当中的,简单看一下这个文件,除了:(*.iml)表示指定任意以(.iml)结尾的文件,其他都是指定的具体的文件名或者目录名,上面配置中的所有内容都不会被添加到版本控制当中,因为基本都是一些有IDE自动生成的配置。

  再看一下app目录下的(.gitignore)文件:由于app目录下面基本都是我们编写的代码,因此默认情况下只有其中的build目录不会被添加到版本控制当中。

  我们完全可以对以上两个文件进行任意的修改,来满足特定的需求,比如说,app下面的所有测试文件都只是给我自己使用的,我并不想把他们添加到版本控制中,那么就可以这样修改app/.gitignore文件中的内容:只需要添加两行配置,因为所有的测试文件都是放在这两个目录下的。

  现在我们就可以提交代码了,先使用add命令将所有文件进行添加,再执行commit命令完成提交,如下所示:

二、查看修改的内容

  在进行了第一次代码提交之后,我们后面还可能对项目不断地进行维护或添加新功能等,有可能到后面我们就忘记前面修改了什么东西了,这时候可以使用Git来查看自上次提交后文件修改的内容。

  查看文件修改情况的方法非常简单,只需要使用status命令就可以了,在项目的根目录下输入命令:git status,然后Git会提示目前项目中没有可提交的文件,因为我们刚刚才提交过,现在对ProviderTest项目中的代码稍做一下改动,修改MainActivity中的代码如下:

这里我们仅仅在添加数据的时候,将书的价格改为了55.55,然后依次输入命令:git status ---> git diff

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

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

其中减号代表删除部分,加号代表添加的部分,从图中我们明显地看到价格修改成了55.55.

三、撤销未提交的修改

  有时候我们的代码可能写得过于草率,以至于原本正常的功能,结果反倒被我们改出了问题,遇到这种情况,只要代码还未提交,所有修改的内容都是可以撤销的。比如在上一节中我们修改了MainActivity中一本书的价格,现在想要撤销这个修改,就可以使用checkout命令,用法如下:

  git checkout app/src/main/java/com/workspace/hh/providertest/MainActivity.java

   执行这个命令后,我们对MainActivity.java这个文件所做的一切修改就应该都被撤销了。重新运行:git status 命令检查一下,结果如图:可以看到,没有任何可提交的文件,说明撤销成功了。

  不过这种撤销方式只适用于那些还没有执行过add命令的文件,如果某个文件已经被添加过了,这种方式就无法撤销其更改的内容。解决办法是:先对其取消添加,再撤回提交,取消添加使用的是:reset命令。用法如下:

  git reset HEAD app/src/main/java/com/workspace/hh/providertest/MainActivity.java

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

 四、查看提交记录

  当一个项目开发了几个月之后,我们可能已经执行过上百次的提交操作,可能早就已经忘记了每次提交都修改了哪些内容,这个时候可以使用log命令来查看历史提交信息。用法如下:

输入:git log,我们看到,提交记录包括:提交id、提交人、提交日期、提交描述这4个信息。

Git使用—第二讲的更多相关文章

  1. GIT 学习第二天 (二)

    工作区和暂存区 工作区: 就是你在电脑里能看到的目录,比如:webgit 文件夹 就是一个工作区 版本库: 工作区有一个隐藏目录 .git ,这个不算工作区,而是Git的版本库 Git的版本库里存了很 ...

  2. POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

    第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...

  3. Stanford机器学习---第二讲. 多变量线性回归 Linear Regression with multiple variable

    原文:http://blog.csdn.net/abcjennifer/article/details/7700772 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归 ...

  4. 【军哥谈CI框架】之入门教程之第二讲:分析CI结构和CI是怎么工作的

    [军哥谈CI框架]之入门教程之第二讲:分析CI结构和CI是怎么工作的   之入门教程之第二讲:分析CI结构和CI是如何工作的大家好!上一节,我们共同部署了一个CI网站,做到这一点非常简单,但是,亲们, ...

  5. 《ArcGIS Engine+C#实例开发教程》第二讲 菜单的添加及其实现

    原文:<ArcGIS Engine+C#实例开发教程>第二讲 菜单的添加及其实现 摘要:在上一讲中,我们实现了应用程序基本框架,其中有个小错误,在此先跟大家说明下.在“属性”选项卡中,我们 ...

  6. 基于微信公众平台的开发(清华大学第二讲)_Alien的笔记

    基于微信公众平台的开发(清华大学第二讲)_Alien的笔记 基于微信公众平台的开发(清华大学第二讲)

  7. 32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数

    32位汇编第二讲,编写窗口程序,加载资源,响应消息,以及调用C库函数 (如果想看所有代码,请下载课堂资料,里面有所有代码,这里会讲解怎么生成一个窗口程序) 一丶32位汇编编写Windows窗口程序 首 ...

  8. 常见注入手法第二讲,APC注入

    常见注入手法第二讲,APC注入 转载注明出处 首先,我们要了解下什么是APC APC 是一个简称,具体名字叫做异步过程调用,我们看下MSDN中的解释,异步过程调用,属于是同步对象中的函数,所以去同步对 ...

  9. PE文件格式详解,第二讲,NT头文件格式,以及文件头格式

    PE文件格式详解,第二讲,NT头文件格式,以及文件头格式 作者:IBinary出处:http://www.cnblogs.com/iBinary/版权所有,欢迎保留原文链接进行转载:) PS:本篇博客 ...

随机推荐

  1. 【转】PHP 杂谈 坑爹的file_exists

    转自:http://www.cnblogs.com/baochuan/archive/2012/05/06/2445822.html 介绍   我发现了一个问题,今天与大家分享.我把整个过程描述一下. ...

  2. Google Chrome 下载&绿化&增强

    Chrome下载 Google Chrome 已经可以在线更新,虽然比较慢! 国内常用的更新地址有两处:chromedownloads 和 shuax(耍下): https://www.chromed ...

  3. 【Java入门提高篇】Day31 Java容器类详解(十三)TreeSet详解

    上一篇很水的介绍完了TreeMap,这一篇来看看更水的TreeSet. 本文将从以下几个角度进行展开: 1.TreeSet简介和使用栗子 2.TreeSet源码分析 本篇大约需食用10分钟,各位看官请 ...

  4. Azure Ubuntu18.04安装lxde桌面记录,Windows远程连接Ubuntu18.04(Linux)

    执行如下命令: 尽量按以下顺序执行,否则可能会发生意向不到的问题(坑) 1.更新数据源 sudo apt-get update 2.更新安装包 sudo apt-get upgrade 3.安装lxd ...

  5. 学习使用TestNG进行数据驱动测试

    转自: https://mp.weixin.qq.com/s/8Bd8LEhiC2pu2VMcyNMGlQ 学习使用TestNG进行数据驱动测试 赵吃饭 51Testing软件测试网 前天   学习使 ...

  6. maven(三):maven项目结构及其运行机制

    在上一篇中讲了如何创建maven项目,现在回到那个项目 项目结构 src/main/java:java代码目录 src/main/resources:资源目录,比如spring.xml文件,prope ...

  7. [20170617]vim中调用sqlplus.txt

    [20170617]vim中调用sqlplus.txt --//以前写过一篇emacs下调用sqlplus的文章,一直想学emacs,受限制自己掌握vim,对学习它没有兴趣,原链接如下:--//htt ...

  8. 安装VisualSVN Server 报"Service 'VisualSVN Server' failed to start. Please check VisualSVN Server log in Event Viewer for more details"错误.原因是启动"VisualSVN Server"失败

    安装VisualSVN Server 报"Service 'VisualSVN Server' failed to start. Please check VisualSVN Server ...

  9. virtualenv 的使用

    首先,我们用pip安装virtualenv: 一.使用与启动: $ pip3 install virtualenv 然后,假定我们要开发一个新的项目,需要一套独立的Python运行环境,可以这么做: ...

  10. 修改css的(屏蔽)overflow: hidden;实现浏览器能把网页全图保存成图片

    摘要: 1.项目需要,需要对网页内容“下载”保存成全图片 2.QQ浏览器等主流浏览器都支持这种下载保存功能 3.项目需要场景:编写好的项目维护文档,放在服务器上.如果是txt不能带图片可视化,如果wo ...