无法使用强制选项进行Git-add

16

我在~/bin目录下执行了git-status命令:

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

我在运行

git add --force screen/dev/

我得到了与之前相同的git状态。我独立地添加了文件夹中的每个文件,但是我得到了相同的git状态。

screen/dev/中没有.git。该文件夹似乎不是子模块。

您如何强制将一个文件夹及其内容添加到位于~/bin的git中?


2
你能否使用一个新的 Git 仓库,从 "git init" 开始重现这个问题? - Greg Hewgill
@Greg:我无法在一个全新的 Git 仓库中重现这个问题,尽管文件结构中的名称完全相同。--- 这提示我,在我的代码库中有一些文件操作了 folder screen/dev。 - Léo Léopold Hertz 준영
我在Windows上遇到了同样的问题。原来我添加的文件名是“foobar.txt”,但实际上应该是“Foobar.txt”。Windows不区分大小写,但Git仍然像在Linux上运行一样,因此它将文件视为区分大小写。 - Mort
7个回答

10

你不需要使用 '--force' 或 '-f' 选项:请参见git add

-f
--force

允许添加一些被忽略的文件。

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

 git add screen/dev

应该足够了(不需要选项或以“/”结尾)


没有 / 也会出现相同的问题。 - Léo Léopold Hertz 준영
这篇帖子的标题是“强制执行”,用户表示他们已经使用了--force - Guillermo Prandi
@GuillermoPrandi 我明白。我以为(10年前)在这种情况下不需要使用 --force - VonC

9
问题可以通过重命名文件夹并将带有新名称的文件夹添加到Git中来解决。
这表明必须有某个文件在操作文件夹名称“dev”。

6
这是一个剪切/复制的错别字吗?
如果不是,那应该是这样。
git add --force screen/dev

3

尝试执行:

git add -A .

此外,如果您有一个.gitignore 文件,那么您可能无意中忽略了一些东西(例如:可能是您尝试添加的文件)。

在运行您的命令后,同样的问题也会出现。我没有在.gitignore文件中找到该文件夹。 - Léo Léopold Hertz 준영
1
这个命令没有意义。-A. 做的是同样的事情。没有理由将它们结合起来。请参见此处:https://dev59.com/lHRB5IYBdhLWcg3wn4UL?rq=1 - solidak

3

如果什么都不起作用...

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

0

我也发现,你必须至少在该目录中拥有一个文件才能被 git 捡起来。

如果里面没有文件,git add screen/dev 就无法工作。


0

只需 git add .

休息一下 吃个KitKat 泡杯咖啡

等你一会儿回来,它就完成了


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接