使用 git add . 把空的文件夹添加到 Git 的暂存区
做了一回标题党,事实上标题所说的这件事目前还无法做到,这也许算的上是 Git 的一个小缺陷吧,Linus 在写 Git 的时候可能默认就是把所有的文件夹默认为不是空的的。
今天新建了一个新的分支,就因为空的文件夹这个问题被坑了。因为我在 master 分支下有一些空文件夹存在,但是之前也并没有在意,然后我新建了一个分支,当我切换到新的分支的时候,发现在这个新的分支下居然有一些奇怪的文件夹,于是就顺手把它们都删了。后来当我切回到 master 分支的时候,毫无意外的发现少了一些文件夹 …
其实原理很简单,就是前面的 master 分之下,当使用 git add . 时,空文件夹并没有被加入到暂存区里面,这些文件夹还是被当作成普通的文件夹的。当我切换到另一个分支时,这些文件夹还是被当作成普通的文件夹放在了那里,所以我相当于把普通的文件夹给删除了,而且因为这些文件夹并没有被添加到 Git 中,所以也没有办法恢复,我最后还是手动又把这些文件夹创建了出来 …
解决这个问题其实也比较简单,就是在所有的空文件夹中添加一个文件(比如 .gitkeep),这样在使用 git add .
的时候,就能够成功的把所有的文件都保存到 Git 中了。
本文链接:
https://www.nosuchfield.com/2015/12/29/use-git-add-to-add-empty-folders-to-Git's-staging-area/
版权声明:
本博客所有文章均采用
CC BY-NC-SA 4.0 许可协议,转载请注明出处!