【问题标题】:How to commit a directory into a git repository?如何将目录提交到 git 存储库?
【发布时间】:2009-10-15 17:27:24
【问题描述】:

我在这里读到了很棒的git tutorial,我无法创建目录。

我的文件夹结构是:

代码 - Python - C++ - F# - ...

从初始化的本地存储库“代码”中,我更改为子文件夹“Python”、“C++”,...做了git init,现在我希望在我的版本控制服务器上使用相同的结构。

% git commit -m "added directories"
# On branch master
nothing to commit (working directory clean)

我想我完全搞错了,是吗?

谢谢, 希望

【问题讨论】:

    标签: git


    【解决方案1】:

    尝试先将一些文件添加到目录中。您可以在目录中添加一些虚拟文件,并在为目录添加实际内容后删除该文件。

    Git 不跟踪空目录,它跟踪文件及其内容。

    git init
    mkdir foo
    touch foo/dummy_empty_file
    
    git add foo
    git add foo/dummy_empty_file
    git commit -m "adding files"
    

    【讨论】:

    • 这里只需要两个添加之一。当给定一个目录时,git-add 递归地添加它。另一方面,添加目录中唯一的文件与添加整个目录相同,因为正如您所说,git 跟踪文件及其内容。
    • 在 Rails 中,约定是在目录中放置一个.keep 文件。对我来说,这似乎是一个合理的(事实上的)标准,我建议您使用该文件名。
    【解决方案2】:

    Git 不会提交空目录。目录中必须先有文件。

    【讨论】:

    【解决方案3】:

    在您要提交的空文件夹中创建一个空的.gitignore 文件。

    Git 只会跟踪文件及其中的更改。因此,文件夹将作为其中文件更改的一部分进行跟踪。 为了创建一个空文件夹并提交它,里面必须有一些文件。

    你可以添加任何你想要的文件,如果你没有任何文件可以放在那里,我建议使用一个空的.gitignore 文件。只要它是空的,这对您的回购没有影响

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-09
      • 2011-05-21
      • 1970-01-01
      • 2020-08-18
      • 2012-04-05
      • 1970-01-01
      • 2019-08-27
      • 2013-10-06
      相关资源
      最近更新 更多