跟踪git中的目录

时间:2016-09-02 11:20:41

标签: git version-control directory gitlab

我认为我的问题很简单,但我无法在Google找到答案。

我有一个GIT项目,包含一个主分支和两个子分支。我们打电话给他们' a'和' b'。

当我创建一个文件(使用GitLab)到master中时,它会被推送到' a'和' b'支行。这是预期的行为。

但是,当我创建一个目录为主人时,我不会在' a'中看到它。和' b'。

这是预期的行为吗?如何使目录传播到子分支(使用GitLab或命令行)?

3 个答案:

答案 0 :(得分:1)

git中未跟踪目录。文件是。目录被选为树的一部分(即存储文件的位置)但如果您有一个空目录,则除非该目录包含内容,否则不会对其进行跟踪。

跟踪目录的方法是将空文件添加到名为.gitignore的目录的根目录中。这是一个文件,这意味着如果将其添加到存储库,则将跟踪该目录。也。它是git用来知道忽略什么的文件。如果将其保留为空,则不会对当前忽略的文件列表进行任何更改。有些人可能会建议添加一个名为.gitkeep的空文件,这似乎是一个非正式的约定。再次。它没有坏处,但我更喜欢使用具有含义(.gitignore)的文件名,而不是任意命名的文件名(.gitkeep)。

答案 1 :(得分:0)

git add空目录是不可能的,这很可能是GitLab无法“传播”它的原因。一种解决方法是在让GitLab提交之前将占位符文件添加到目录中。

正如其他人所提到的,占位符文件可以是.gitignore文件,但不一定是。

答案 2 :(得分:0)

您无法使用Git添加空目录。这只是你必须要处理的事情。如果目录需要保持为空,则可以添加忽略所有内容的gitignore文件。

# Ignore everything in this directory
*
# Except this file
!.gitignore