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

我只是进入git的美妙世界。 我必须提交一些我在程序中所做的更改,这些更改位于名为/ var / www / myapp的目录中

我创build了一个新目录“/ home / mylogin / gitclone” 。 从这个目录中,我做了一个针对公共回购的“git clone”命令,并且能够获得最新的副本。

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

/ home / mylogin / gitclone,我试过了下面的命令:

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

你能给我几个关于我在做什么错的指针吗? 另外,我想补充一切,无论是否与主人不同。 谢谢。

首先在克隆文件夹,你可以创建一个分支(所以主人保持不变)

Git Branch [name] 

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

完成后,只需添加/提交更改,然后将分支合并到“主”分支中

它会看起来像这样。

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

从GitHub尝试这个教程

你必须将所有的文件从/ var / www / myapp移动到/ home / mylogin / gitclone然后做一个git add . 然后git commit -m "Your message"

这是因为你正在版本化/home/mylogin/gitclone内的东西,git跟踪该文件夹中的所有内容。 您无法跟踪此存储库之外的其他文件夹。

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

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

当升级到git版本2.12.2出现错误时,我提出了我添加文件的完整路径,如:

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

当删除完整的路径开始工作,如:

 git add file.text 

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

你真正想做的是第一个git checkout -b myapp ,它将根据你克隆的仓库的主分支来创建和签出一个新的分支。 然后,你将实际上复制所有的文件,并提交他们与git commit -a -m "Short descriptive name about what you did" 。 你传递给git commit的参数是用于包含所有对存储库的修改,而-m则是在实际的命令中包含提交信息。 之后,你可以push回到主要的存储库,如果你有写权限,或推到自己的公共回购或不推动它。

我上面描述的几乎是git的基础知识。 尝试阅读这本相当具有描述性的书 。

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