“git add”命令返回“致命:外部存储库”错误消息

时间:2013-02-25 16:54:55

标签: linux git

我刚刚进入了精彩的git世界。 我必须在我的程序中提交一系列更改,这些更改位于名为: / var / www / myapp

的目录中

我创建了一个新目录“/ home / mylogin / gitclone”。从这个目录,我对公共仓库做了一个“git clone”命令,我能够获得最新的副本。

我现在正试图弄清楚如何将我工作文件夹中的所有文件(/ var / www / myapp)和“检查它们”带到主存储库。

来自 / home / mylogin / gitclone,我尝试了以下命令:

“git add / var / www / myapp”但是我收到一条错误消息,说我尝试添加的文件夹位于存储库之外。

你能给我一些关于我做错的事吗?此外,我想添加一切,无论是否与主人不同。 感谢。

11 个答案:

答案 0 :(得分:11)

首先在clone文件夹中,您可以创建一个分支(这样主人保持不变)

Git Branch [name]

将您想要的文件(在旧文件夹中)复制到克隆文件夹。

完成后,只需将您的更改和Merge your branch添加/提交到“主”分支

它会看起来像这样。

git add .
git commit -m "Comments"
git checkout master
git merge [new_branch]

试试这个tutorial from GitHub

答案 1 :(得分:4)

您必须将/ var / www / myapp中的所有文件移至/ home / mylogin / gitclone,然后执行git add .然后git commit -m "Your message"

答案 2 :(得分:2)

那是因为你正在/home/mylogin/gitclone内部对内容进行版本控制,而git会跟踪里面该文件夹中的所有内容。您无法跟踪此存储库之外的其他文件夹。

解决方案可能是使用ln -s创建子模块或使用符号链接

答案 3 :(得分:2)

好的,这个错误对我来说是因为我将项目从一台计算机移到了另一台计算机
因此git无法计算我的全局git user.nameuser.email

我打开了命令提示符,并从以前的计算机中指定了旧的git user.name和user.email。请运行以下命令,并且应将其修复。

cd pathToMyProjectDirectory
git config user.name "myName" 
git config user.email "myEmail" 

答案 4 :(得分:1)

要将某些文件或文件夹添加到存储库,它们必须位于使用“git clone”创建的文件夹中。因此,将您的应用程序复制/粘贴到本地git文件夹中,然后进入“git add *”,然后您就可以使用“git commit - 提交服务器了 - m'消息'“,最后通过”git push“将更改推送到服务器

答案 5 :(得分:1)

当升级到git版本2.12.2时出现错误,我推测我添加文件的路径如下:

git add c:\develop\project\file.text

删除它开始工作的完整路径时,例如:

git add file.text

答案 6 :(得分:0)

Git只跟踪根文件夹中的文件和文件夹,其中包括.git目录和根文件夹中的子文件夹。您尝试添加的文件夹超出了git的范围。

您真正想做的是先git checkout -b myapp,它将根据您克隆的存储库的主分支创建和签出新分支。然后,您实际上将所有文件复制并使用git commit -a -m "Short descriptive name about what you did"提交它们。您传递给-a的参数git commit用于包括对存储库所做的所有更改,-m是在实际命令中包含提交消息。之后,如果您具有写入权限,则可以push返回主存储库,或者将其推送到您自己的公共存储库,或者根本不推送它。

我上面描述的几乎是git的基础知识。试着阅读这个非常具有描述性的book

答案 7 :(得分:0)

当文件名列在.gitignore文件中时,也会出现此消息。

答案 8 :(得分:0)

我的场景是git存储库的路径有符号链接,当向" / home / abc / GIT_REPO / my_dir / my_file"添加文件时,git会抛出此错误。 和" / home"实际上是" / devhome"。

的软链接 当我试图调试这个案例时,

code ninja给了我一些启示。

所以我尝试在运行add命令之前使用命令readlink -f /home/abc/GIT_REPO来获取目标目录。

然后一切都像魅力一样!

答案 9 :(得分:0)

也许有人遇到像我一样的麻烦: 就我而言,使用沙哑(提交钩子)https://github.com/typicode/husky

时抛出了此错误

由于编码,这只是一个错误。我的源代码位于包含特殊字符(“ö”)的目录中

好像赫斯基(husky)在源的绝对路径上使用“ git add”,这在某种程度上失败了

我重命名了路径,并且工作正常。

答案 10 :(得分:0)

我在带有 maven-release-plugin 的 Windows 框中遇到了这个问题。 该插件尝试使用绝对路径添加文件,我注意到 Git add 命令中的路径以大写 D: 开头,而 Working directory: 日志行中的路径以小写 d:

我已将 core.ignorecase = true 添加到 Git 设置中,问题消失了。