0

请注意以下结构:

/assets --> this dir shouldn't be ignored. but SOME OF their contents SHOULD.;
ignoredfile.jpg --> should be ignored.
ignoredfile2.gif --> --> should be ignored.
 /blog --> this dir shouldn't be ignored. but SOME OF their contents SHOULD.;
  /images --> this dir shouldn't be ignored. but ALL their contents SHOULD.;

/assets文件夹里面我有一个 gitignore 文件:

# Ignore everything in this directory
*
# Except this file
!.gitignore
!/images
!/resize
!/blog

在 '/assets/blog' 我有另一个.gitignore.

# Ignore everything in this directory
*
# Except those files
!.gitignore
!/images

问题

当我推送到远程服务器时,git DO 推送了/blog目录但不是那个目录/blog/images。为什么 ?

我该如何解决这个问题?

4

3 回答 3

3

只需将其从中删除.gitignore并使用通常的重新添加即可git add -A <directory-name>,您应该没问题..

请注意可能会再次删除目录的合并,但如果您正确合并所有内容,则应该没问题。

更新

你不能在 git 中提交空目录;一种常见的方法是在其中放置一个空的“占位符”文件,只是说您希望它留在那里。

例如,将一个名为的空隐藏文件.keep放入/images目录并更改.gitignore如下:

/images/*
!/images/.keep

现在,你添加/提交.keep文件,你应该没问题..

替代解决方案

放置一个.gitignoreinside /images,内容如下:

*
!.gitignore
于 2012-11-09T16:40:50.477 回答
1

git不跟踪目录。如果忽略该目录中的所有文件,git则不会记录该目录甚至存在。.keep您可以在该目录和该文件中创建一个名为 eg 的(否则无用的)空文件git add,但我不确定这是否适合您的最终目标。

于 2012-11-09T16:49:26.273 回答
0

从您的.gitignore.

使用 .将目录添加到您的存储库中git add <dir>

提交并再次推送。

于 2012-11-09T16:40:05.987 回答