【问题标题】:GIT not tracking filesGIT不跟踪文件
【发布时间】:2012-12-29 16:26:53
【问题描述】:

我在 AIX 6.1 上设置了 GIT,但遇到了问题。

我遵循的步骤顺序如下:

  1. 我创建了一个文件夹。
  2. 进入文件夹并初始化非裸仓库
  3. 初始化用户名和用户邮箱
  4. 创建一个名为 index.html 的文件,其中包含一些数据。
  5. 创建一个名为 newfolder 的子文件夹
  6. 进入新创建的文件夹。
  7. 创建一个名为 index-2.html 的新文件,其中包含一些数据。

执行上述所有步骤并发出git status 命令后,我得到以下结果:

# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       ../index.html
#       ./

我知道上面目录中的 index.html 正在显示,但为什么没有显示当前目录中的 index-2.html。

文件 index-2.html 也应该被正确跟踪。

【问题讨论】:

    标签: git github aix


    【解决方案1】:

    输出显示当前未跟踪的两件事:

    • ../index.html – 父文件夹中的 index.html 文件
    • ./ – 当前文件夹,包括其所有内容

    所以它确实检测到您有一个未跟踪的文件,但因为它也不知道它的文件夹,所以它只是显示文件夹以累积其所有内容。

    如果您添加文件并让 Git 跟踪它们,它们将正确显示:

    git add index-2.html
    git add ../index.html
    

    【讨论】:

    • 但是我没有在父目录中添加index.html。即使我没有添加文件,它是如何显示在列表中的
    • 状态输出总是相对于你的当前目录。当您输入子文件夹(第 6 步)时,index.html 现在位于您当前文件夹的父文件夹中。
    【解决方案2】:

    它正在跟踪文件夹 ./ ,即当前文件夹。 git 不会(如果我错了,请纠正我),根本不关心子文件夹。这意味着如果您有一个带有文件夹 foo 的存储库,该文件夹已经在存储库中。在 foo 中添加一个子文件夹 bar,并在 foo/bar 中创建一个文件 foobar.txt。那么你只会得到:

    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       ./bar
    

    这意味着如果你在你的 git status 命令之前完成了 cd .. ,你会得到:

    # Untracked files:
    #   (use "git add <file>..." to include in what will be committed)
    #
    #       index.html
    #       newfolder
    

    即使你里面有一个文件。

    这样做的原因是 git 跟踪内容,而不是文件。由于 index2.html 实际上是文件夹 newfolder 的内容,并且您没有跟踪 newfolder,git 不知道 index2.html 存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-30
      • 1970-01-01
      • 2017-03-15
      • 2012-06-01
      • 2020-01-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多