前言
本文长期更新,记录了个人在使用Git过程中经常遇到的难题和相应的解决方案。一方面可以作为备忘方便查阅,另外希望也能让使用Git过程中被各种问题弄晕的朋友们找到一点解决的思路。
最近更新时间: 2018/3/29
常见问题汇总
1. 忽略不必要文件
在项目开发过程中,往往会产生一些临时文件或者库文件。它们无须通过版本控制进行同步,要么从来不会被修改,要么可以通过现有文件生成。这时为了防止版本控制的仓库冗余,往往忽略掉不必要文件是一个很好的解决方案。但是这也可以分成两种情况来说——第一种是刚刚初始化git仓库,你还在为添加哪些文件忽略哪些文件而头疼;第二种则是你耿直地直接把所有文件一股脑丢进版本库里,以至于每次更新版本都有一些 莫名其妙的文件被修改。个人来说,第二种情况反而更多见一点。
a) 第一种情况
先说第一种情况怎么解决,因为你的敬畏之心,你比其他人拥有了一个更加干净的仓库——准确的说是啥也没有。这种情况反而好办了,只需要一个 .gitignore
文件就可以化解所有的烦恼。如果你是Windows的用户可能会麻烦一点,因为windows下通过图形化界面是无法创建一个没有名字只有后缀的文件的。我推荐一个比较简单的方法,就是通过cmd的echo命令来创建。你只需要在命令行中切换到仓库对应的根目录(即带有.git文件的那个目录),然后使用 echo 123 > .gitignroe
就可以得到一个git ignore文件。然后你就可以通过文本编辑器(最好不要用自带的文本文档,可能会有问题)打开该文件,然后发现里面有“123”的文本。这是因为echo将“123”重定向到了 .gitignore
文件里,“123”没有任何意义,你完全可以删掉它们。
有了git忽略文件只是第一步,下一步要做的则是把未被跟踪中想要忽略的文件名添加到 .gitignore
文件中。这里的未被跟踪一词需要被划重点一词,因为它就是区分上述两种情况不同的根本所在。已经被git仓库跟踪的文件是不会受到gitignore影响的。如果你不理解什么是未被跟踪(untracked ),可以简单地把它理解为——从未被git commit提交到版本库中的文件。例如你在git工作目录下新建了一个文件,通过 git status
查看仓库状态时它就会被认为是未被跟踪的。联系到实际情况,就是你鲁莽地把所有文件一股脑添加到了版本库中,然而现在你突然发现有些文件根本不需要被跟踪,这时你采用gitignore的方式依然无法忽视掉这些文件之后的改动。
关于如何在 .gitignore
中忽略