当我向git添加一个新项目时,我收到了这个错误.
Error - fatal: '/Users/username/Downloads/folder_name' is outside repository
Run Code Online (Sandbox Code Playgroud)
如何获得这个错误?我想,我需要提供当前的工作目录.但是,不知道该怎么做.任何人都可以帮我解决这个问题吗?但是,当我直接添加新文件时,它工作正常..我的帮助非常感谢..谢谢提前.
Git无法跟踪存储库之外的文件,所以当你做的时候
git add /Users/dineshkumar/Documents/sampleios
Run Code Online (Sandbox Code Playgroud)
Git告诉你,字面意思是:你试图添加的路径位于你所在的初始化存储库之外.
术语库有点没有实际意义,所以让我们更清楚.
通常你像这样使用Git:
$ mkdir project; cd project
$ git init
$ vim upload.php
...
$ git add upload.php
...
$ git commit
Run Code Online (Sandbox Code Playgroud)
当您git init在目录中运行时(在我们的例子中为"project")Git在其中创建一个名为".git"的特殊子目录 - 其中包含实际的存储库数据(对象和配置) - 然后将封闭目录转换为工作树. 工作树包含您实际编辑并提交给Git以构建下一个提交的文件.
这种设计的关键原因是只有位于工作树中的文件由Git管理.您不能git add从其他地方获取文件 - 仅限于工作树中的文件.因此,没有人git add使用完整路径调用,因为这没有任何意义.
我不确定你的困惑在哪里根深蒂固.如果您认为该git add命令应该将文件/目录从某个地方复制到工作树中,那么您就错了.如果您不知道工作树并且认为存储库能够跟踪文件系统树上的任意文件,那么您又错了 - 如果这是真的,克隆将如何工作?
您应该熟悉git add不是将文件添加到存储库的想法,而是将文件中的更改添加到所谓的暂存区域,从中进行下一次提交.添加一个当前未跟踪的文件只是一个特殊情况 - 这个添加只是一个整个文件"更改".
看看你的尝试,我可能会猜到你想要/Users/dineshkumar/Documents/sampleios变成一个Git存储库.如果是这种情况,那就做
$ cd /Users/dineshkumar/Documents/sampleios
$ git init
$ git add .
$ git commit
Run Code Online (Sandbox Code Playgroud)
但在你这样做之前,请从书中开始,因为你似乎缺乏最基本的Git知识.