【问题标题】:Unable to Git-add with force无法强制添加 Git
【发布时间】:2010-11-10 20:37:11
【问题描述】:

我在 ~/bin: 得到 git-status:

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

我跑

git add --force screen/dev/

我得到了和以前一样的 git-status。我在文件夹中单独添加每个文件,但我得到相同的 git-status。

screen/dev/ 中没有 .git。该文件夹似乎不是一个 sumbodule。

如何在 ~/bin 处将文件夹及其内容强制添加到我的 git 中?

【问题讨论】:

  • 你能用一个新的 Git 存储库重现这个,从“git init”开始吗?
  • @Greg:我无法用新的 Git 存储库重现问题,尽管我在文件结构中保留了完全相同的名称。 --- 这表明我的 repo 中必须有一些文件可以操作文件夹 screen/dev

标签: git git-add


【解决方案1】:

你不应该需要'--force'或'-f'选项:见git add

-f
--force

允许添加其他忽略文件。

在您的情况下,您可能不想添加所有文件,包括 screen/dev 目录下的忽略文件。

 git add screen/dev

应该足够了(没有选项或以'/'结尾)

【讨论】:

  • 没有/也会出现同样的问题。
  • 帖子标题为“with force”,用户表示已经使用--force
  • @GuillermoPrandi 我明白了。我认为(10 年前)在这种情况下不需要--force
【解决方案2】:

可以通过重命名文件夹并将具有新名称的文件夹添加到Git来解决问题。

这表明我必须有一些文件在操纵文件夹名称dev

【讨论】:

    【解决方案3】:

    这是剪切粘贴上的错字吗?

    如果不是,应该是

    git add --force screen/dev
    

    【讨论】:

      【解决方案4】:

      尝试做:

      git add -A .
      

      此外,如果您有一个 .gitignore 文件,您也可能无意中忽略了某些内容(即:可能是您尝试添加的文件)。

      【讨论】:

      • 运行命令后也会出现同样的问题。我在 .gitignore -files 中没有文件夹。
      • 这个命令没有意义。 -A. 做同样的事情。没有理由将两者结合起来。见这里:stackoverflow.com/questions/572549/…
      【解决方案5】:

      如果没有任何效果...

      • 将顽固的目录移动到 repo 之外的临时位置
      • 删除 repo 中顽固目录的任何剩余痕迹
      • 推送并确保本地与远程同步
      • 将顽固的目录从临时位置移回 repo(您不必重命名)
      • git add -A
      • 提交并推送

      【讨论】:

        【解决方案6】:

        我还发现,您必须在该目录中至少有一个文件才能被 git 拾取。如果里面没有文件,git add screen/dev 将不起作用。

        【讨论】:

          猜你喜欢
          • 2013-09-05
          • 2013-05-12
          • 2021-02-13
          • 1970-01-01
          • 1970-01-01
          • 2021-09-24
          • 1970-01-01
          • 1970-01-01
          • 2022-06-11
          相关资源
          最近更新 更多