`

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
分享到:
评论

相关推荐

    progit-zh git官方文档-中文版

    - 本章详细介绍了如何使用Git进行日常的操作,涵盖了从项目初始化到文件修改、提交和回溯等各个方面,为高效地使用Git提供了全面的指南。 #### 三、Git分支 **3.1 何谓分支** - 分支是Git中最强大的特性之一,它...

    github-git-cheat-sheet (官方文档汉化版)

    - **忽略文件**: ``` $ git ls-files --other --ignored --exclude-standard ``` 列出项目中被忽略的文件,通常通过`.gitignore`文件配置。 - **查看历史记录**: ``` $ git log ``` 显示当前分支的历史记录...

    Pro Git - Scott Chacon

    - **取消文件修改**:使用`git checkout -- <file>`恢复到最新提交的状态。 - **远程仓库操作**: - **查看远程仓库信息**:使用`git remote -v`列出远程仓库。 - **添加远程仓库**:使用`git remote add`添加新...

    git-share

    #### 四、Git忽略文件 为了避免不必要的文件被添加到仓库中,可以使用 `.gitignore` 文件来定义要忽略的文件模式。例如: ``` # 忽略所有 .a 结尾的文件,但 lib.a 除外 *.a !lib.a # 忽略项目根目录下的 TODO ...

    git常用命令.docx

    - `git log`显示所有提交记录,`--pretty=oneline`简化输出,`git log 记录的ID -p`显示具体修改,`git log --name-status 分支名`查看指定分支的记录及修改的文件。 10. **修改历史提交**: - 回退到提交前,...

    git详解-PDF

    - **直接记录快照,而非差异比较**:Git不记录文件变化的具体内容,而是每次更改时,都保存整个工作目录的一个快照并将其添加到历史记录中。当想要恢复旧版本时,Git会简单地取出先前的快照并替换当前的工作目录。 -...

    git-extensions-documentation

    3. **忽略文件**:讲解了如何配置`.gitignore`文件来排除不必要的文件或目录。 #### 多语言支持与翻译 1. **更改语言**:提供了如何更改Git Extensions的界面语言的步骤。 2. **参与翻译**:鼓励用户参与Git ...

    git 操作指南

    1. 查看提交记录:git log -p --stat --oneline - git log命令用于查看版本提交历史。 - -p选项会显示每次提交的内容差异。 - --stat选项会显示每次提交中文件的修改统计信息。 - --oneline选项会将提交记录缩略...

    git学习笔记,一看就会

    - `git diff`:查看已修改但未暂存的文件 - `git diff --cached` 或 `git diff --staged`:查看已暂存的文件 - **提交更新**: - `git commit -m "message"`:提交暂存的更改 - `git commit -a -m "message"`:...

    学习git和gitbash使用的一些详细操作

    `git log`可以查看提交的历史记录,而`git reflog`能够查看分支的移动记录。 - 删除文件:`git rm <file>`命令用于删除工作区中的文件,并将这次删除操作加入到暂存区,之后使用`git commit`来提交。 Git分支: - `...

    git工具命令笔记

    3. **查看文件修改细节**:`git diff 文件名` 展示了工作区与暂存区之间的差异,即文件的具体改动。 4. **查看历史记录**:`git log` 显示提交历史,`--pretty=oneline` 参数可以让输出更简洁。通过版本号的前几位...

    git命令大全

    - **查看提交历史**:通过 `git log` 命令可以查看仓库的历史提交记录,这对于理解项目的演变过程非常重要。 - **日志格式**:使用不同的选项可以定制输出的日志格式,如 `-p` 用于查看每个提交的差异细节,`--graph...

    git操作文档

    ### Git 操作文档知识点详解 ...- 使用 `git checkout -- <file>` 撤销对文件的更改,恢复至最近一次提交的状态。 以上是关于 Git 基本操作的一些知识点,通过理解和掌握这些内容,可以更加高效地管理和协作代码。

    git本地代码管理指令

    - `.gitignore`文件非常重要,它可以告诉Git忽略某些文件或目录,比如编译产生的临时文件或者个人配置文件等。 - 在进行任何操作之前,通常都需要先查看状态(`git status`),以确保不会丢失重要的更改。 #### 四...

    git入门手册-第一版

    - 修改提交信息:`git commit --amend`。 - 取消暂存/修改:`git reset <file>`,或`git reset HEAD <file>`。 - 更多高级撤销操作需谨慎使用,如`git revert`、`git reset --hard`。 6. **远程仓库的操作** - ...

    Git开发操作流程v1.0 Git使用笔记 git常用命令 git常见问题

    - **忽略未提交的改动**:`git reset --hard HEAD` 或 `git checkout -- <fileName>`撤销未提交的改动。 - **删除已跟踪的目录**:`rm -rf --cached <directoryName>`,然后`git commit -am "Remove directory"`。 ...

Global site tag (gtag.js) - Google Analytics