git学习篇之文件操作

忽略文件

有些文件不必提交到版本库中,如可执行文件,日志文件,临时文件,库文件,在工作目录下手动创建.gitignore文件,如以下所示我们忽略.bin文件的提交
git学习篇之文件操作
从下图可以看出我们.bin文件就被忽略,检查不到.bin的变化,但是.o,.a文件没有被忽略所以能够看到变化
git学习篇之文件操作
git学习篇之文件操作
下面我们把.o,.a文件给忽略掉
git学习篇之文件操作
再次查看git状态,可以看出.a,.o文件已经被忽略
git学习篇之文件操作
下图是忽略匹配规则
git学习篇之文件操作

撤销修改

git学习篇之文件操作
在版本提交的过程中我们可能会做出错误的修改,提交到版本库中
撤销工作区的修改
git学习篇之文件操作
对工作区的readme进行修改
git学习篇之文件操作
可以看出我们的readme文件做出了改动,如果我们想返回修改前的状态,可以使用git checkout命令
git学习篇之文件操作
从上图看出我们的修改就被撤回了,特别注意的是若文件还没添加到暂存区中,撤销后和版本库一样,下面演示下
git学习篇之文件操作
git学习篇之文件操作
首先往readme中加入1111111111后提交到暂存区
git学习篇之文件操作
接着修改readme的内容但是不添加到暂存区
git学习篇之文件操作
撤销后不会改变暂存区内容只是将工作区的内容清空
撤销暂存区的内容
git学习篇之文件操作
上面就把暂存区的修改给撤销掉了,重新撤回工作区
撤销版本库的提交
git学习篇之文件操作
先将readme提交到版本库中
git学习篇之文件操作
git学习篇之文件操作
可以看出我们撤回版本的提交到暂存区,版本库回退了一个版本,下面我们来演示下撤回版本到工作区
git学习篇之文件操作
上图可以看出我们把提交撤回到工作区,我们可以对他进行修改然后重新提交
git学习篇之文件操作
使用–hard参数可以回退到最起始的地方

差异比较

git学习篇之文件操作
我们通过git diff + 参数比较工作区,暂存区和版本库之间的差异
git学习篇之文件操作
git学习篇之文件操作
从上图可以看出我们可以通过git diff比较工作区和暂存区之间的差异,红色表示被修改
git学习篇之文件操作
上面我们将readme加入暂存区,然后比较暂存区和版本库之间的差别,命令后面隐藏的HEAD参数指向当前提交的commit,所以可以比较版本库和暂存区之间的差别
git学习篇之文件操作
也可以加上commit码比较不同版本之间的差异,当然也可以通过git diff [commit 码1] [commit 码2]比较两个版本之间的差异
git学习篇之文件操作
可以通过git diff HEAD命令比较工作区和版本库之间的差别,很明显添加了1111111,2222222