Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么git add-A没有';你不能添加这些文件吗?_Git - Fatal编程技术网

为什么git add-A没有';你不能添加这些文件吗?

为什么git add-A没有';你不能添加这些文件吗?,git,Git,我正在尝试使用git来管理我的.emacs.d/,但添加一些文件失败: 下面是.gitignore文件: *~ auto-save-list 为什么git add-A无法添加这些文件?对于使用git管理.emacs.d有什么实用的建议吗 编辑: ~/.emacs.d $ git config -l user.email=nickleeh@hotmail.com user.name=Nick Lee core.autocrlf=input core.editor=sublime -wl1 pu

我正在尝试使用
git
来管理我的
.emacs.d/
,但添加一些文件失败:

下面是.gitignore文件:

*~
auto-save-list
为什么
git add-A
无法添加这些文件?对于使用git管理
.emacs.d
有什么实用的建议吗

编辑:

~/.emacs.d $ git config -l
user.email=nickleeh@hotmail.com
user.name=Nick Lee
core.autocrlf=input
core.editor=sublime -wl1
push.default=simple
color.ui=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
user.email=nickleeh@hotmail.com
~/.emacs.d $ 
编辑2

当我尝试添加未跟踪的文件时,出现以下致命错误:

~/.emacs.d $ git add el-get/ace-jump-mode/*
fatal: Pathspec 'el-get/ace-jump-mode/README.md' is in submodule 'el-get/ace-jump-mode'
原来,
ace跳转模式
是一个子模块。我怎样才能骑上它

这是否意味着使用git管理emacs配置文件不是一个好主意

根据

如果使用选项时给出“否”,则会更新整个工作树中的所有文件(旧版本的Git用于限制对当前目录及其子目录的更新)


我假设这是您的问题,尽管我确实看到一个文件位于添加的子目录中。

似乎您有一些已修改的子模块,但您尚未提交这些更改

第一个解决方案是输入这些子模块中的每一个子模块并提交自己的更改。然后您可以在父存储库中
git add-A
,它将删除这些消息

您的第二个选择是使用以下选项:

git submodule foreach --recursive git add -A .
这将为您提交子模块中的所有内容(但在本例中您缺乏控制)

有关此链接的更多信息:

显然,Git现在可以使用
Git add-A
命令

请注意,在谈论git add时,启动git 2.0(2014年第一季度或第二季度)。(工作树中的当前路径),在其他git add命令中也必须使用“.”

这意味着:

“git add-A.”相当于“git add.;git add-u.”

(注意git add-A和git add-u的额外“.”

因为git add-A或git add-u将在整个工作树上运行(仅启动git 2.0),而不仅仅是在当前路径上

git add -u
添加所有已受版本控制的修改文件。否则,要添加尚未受控制的文件,请执行以下操作:

git add -A .

显然,您在过去已经创建了至少两个不同的存储库

一个存储库位于
~/.emacs.d
中,因此
git init
不会创建新的存储库,但只会再次初始化它:

git help init

   Running git init in an existing repository is safe. It will not
   overwrite things that are already there. The primary reason for
   rerunning git init is to pick up newly added templates (or to move the
   repository to another place if --separate-git-dir is given).
另一个存储库位于
~/.emacs.d/el-get
中。此存储库是“未跟踪内容”消息的原因,也是不将这些文件添加到外部存储库的原因

你有三种可能:

  • 内部存储库由at工具创建并由其管理:只需忽略.gitignore中的目录即可
  • 错误地创建了内部存储库:删除内部.git目录
  • 内部存储库是手动创建的:将其作为子模块添加到外部存储库中

@EddieB
git add-a
错误:未知开关“a”
。啊。。。先提交你的.git文件。。。然后运行
git add-A
@EddieB.gitignore将在不提交的情况下工作。
git--version
说什么?@Schwern。。。看起来如此。。。可以发誓它没有。引用的对git add-A的更改发生在2.0中。这是子模块的情况;在这里,情况显然不是这样,因为存储库刚刚初始化。虽然此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能无效。不一定,如果查看他的
git init
输出,您会发现存储库已经存在,因此
git init
不会对现有子模块做任何事情。(我刚刚自己做了测试,是的,
gitinit
尊重子模块)@leetylor谢谢。我假设链接在StackOverflow内部是安全的。但是我现在按照你的建议去做了。@Mondkin关于
git init
,你是对的。我没听清楚那是说重新初始化了。但是,您链接到的另一个答案特别提到了
git status
outout中的子模块,而这个问题并没有提供任何暗示,说明其中涉及子模块。谢谢!我发现
~/.emacs.d/el-get/
是由emacs包管理工具
el-get
创建和管理的git存储库。我不想把事情搞复杂。如何使用git manage
.emacs.d
而不破坏任何内容?在这种情况下,您可能只想忽略该目录。(因为el get已经在管理它。)