提交空文件夹结构(与GIT)(Commit empty folder structure (with

2019-07-18 18:25发布

我在项目的根数据目录。 它具有图像目录和一些文件。 下面是例子:

  • 数据/
    • 图片/
      • image1.jpg
      • image2.jpg
      • image2.jpg
    • results.csv
    • r.txt

如何才能在gitignore写,忽略从数据/目录中的文件(即results.csv和r.txt)和images /目录下的文件(image.jpg的,image2.jpg,image3.jpg)?

当我提交它,在库中的文件夹结构应该是:

  • 数据/
    • 图片/

所以,我只想被COMMITED空文件夹结构。

Answer 1:

在Git中,你不能犯空文件夹,因为Git不会实际保存文件夹中的文件。 你必须创建这些目录里面的一些占位符文件,如果你真的想他们是“空”(即你没有可提交的内容)。



Answer 2:

只需添加一个文件.gitkeep你想致力于每一个文件夹中。

在Windows文件夹中时,通过右击做,并选择:从这里的Git的bash。 然后键入: touch .gitkeep



Answer 3:

这很简单。

告诉.gitignore忽略,除了一切.gitignore ,你想保留这些文件夹。 放.gitignore到您希望保留回购的文件夹。

的最顶层目录.gitignore

# ignore everything except .gitignore and folders that I care about:
*
!images*
!.gitignore

在嵌套的images文件夹,这是你.gitignore

# ignore everything except .gitignore
*
!.gitignore

请注意,你必须在你的.gitignore不希望文件夹的名称到该的.gitignore所在的文件夹中被忽略拼出来。 否则他们是,很明显,忽略不计。

您在回购的文件夹会,显然,并非是空的,因为每个人都会有.gitignore中,但该部分可以忽略不计了吧。 :)



Answer 4:

递归创建.gitkeep文件

find . -type d -empty -not -path "./.git/*" -exec touch {}/.gitkeep \;


Answer 5:

传统上,每当我想提交和空目录结构,创建结构,然后在叶目录地方叫一个空文件empty.txt

然后,当我把东西在那准备提交,我可以简单地删除empty.txt文件并提交真实的文件。

  • 数据/
    • 图片/
      • empty.txt


Answer 6:

考虑也只是在做mkdir -p data/images在你的Makefile,如果目录需要构建过程中在那里。

如果这还不够好,刚刚创建的数据/图像的空文件,而忽略数据。

touch data/images/.gitignore
git add data/images/.gitignore
git commit -m "Add empty .gitignore to keep data/images around"
echo data >> .gitignore
git add .gitignore
git commit -m "Add data to .gitignore"


Answer 7:

您可以使空犯git commit --allow-empty ,但不会允许你提交一个空文件夹结构,Git并不知道也不关心文件夹,对象本身-只是它们所包含的文件。



Answer 8:

根据他们的常见问题,GIT不跟踪空目录。

Git的常见问题解答

不过,也有根据您的需求和项目需求的解决方法。

基本上,如果你想跟踪一个空目录,你可以放置一个.gitkeep文件在那里。 该文件可以是空白,这将只是工作。 这是跟踪一个空目录的控释片的方式。

另一种选择是对目录提供的文档。 你只需在它描述它的预期使用添加自述文件。 Git会跟踪文件夹,因为它有它一个文件,现在你可能会使用的源代码提供文档,您和/或其他任何人。

如果你正在建设一个web应用程序,你可能会发现只需添加可能含有否认消息的许可index.html文件,如果文件夹仅通过应用程序进行访问。 笨这是否与他们的所有目录。



Answer 9:

只需添加名为.keep在图像现在folder.you可以暂存并提交,也能够文件夹添加到版本控制文件。

创建图片文件夹中的空文件$ touch .keep

$ git status

On branch master
Your branch is up-to-date with 'origin/master'.

Untracked files:
  (use "git add ..." to include in what will be committed)

    images/

nothing added to commit but untracked files present (use "git add" to track)

$ git add .

$ git commit -m "adding empty folder"



文章来源: Commit empty folder structure (with git)
标签: git gitignore