33

我刚刚进入了美妙的 git 世界。我必须提交我对我的程序所做的一系列更改,这些更改位于一个名为/var/www/myapp.

我创建了一个新目录/home/mylogin/gitclone。从这个目录中,我git clone对公共回购做了一个,我能够得到最新的副本。

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

/home/mylogin/gitclone,我尝试过,git add /var/www/myapp但我收到一个错误,即我尝试添加的文件夹位于存储库之外。

你能给我一些关于我做错了什么的指示吗?另外,我想添加所有内容,无论它是否与主人不同。谢谢。

4

11 回答 11

18

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

git branch [branch_name]

之后,只需将您想要的文件从旧文件夹复制到克隆文件夹。

完成后,只需添加/提交您的更改并将您的分支合并到“主”分支。它看起来像这样:

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

从 GitHub尝试本教程。

于 2013-02-25T16:57:55.007 回答
4

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

于 2013-02-25T16:59:09.100 回答
3

要将某些文件或文件夹添加到您的存储库,它们必须位于您使用git clone. 因此,将您的应用程序复制/粘贴到您的本地 git 文件夹中,然后进入它并执行git add *,然后您将能够提交到服务器git commit -m 'message'并最终将更改推送到服务器git push

于 2013-02-25T17:01:48.980 回答
3

当升级到 git 版本 2.12.2 出现该错误时,我注意到我添加了具有完整路径的文件,例如:

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

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

git add file.text
于 2017-05-05T14:37:19.270 回答
2

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

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

于 2013-02-25T16:57:55.980 回答
2

好的,这个错误出现在我身上,因为我将项目从一台计算机移动到另一台计算机
所以 git 无法计算出我的全局 gituser.nameuser.email

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

cd pathToMyProjectDirectory
git config user.name "myName" 
git config user.email "myEmail" 
于 2020-07-23T03:24:14.920 回答
1

Git 只跟踪根文件夹中的文件和文件夹,包括 .git 目录和根文件夹中的子文件夹。您尝试添加的文件夹不在 git 的范围内。

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

我上面描述的几乎是 git 的基础知识。尝试阅读这本书,它的描述性很强。

于 2013-02-25T17:56:49.547 回答
1

也许有人遇到了和我一样的麻烦:在我的情况下,这个错误是在使用 husky(提交钩子)时抛出的https://github.com/typicode/husky

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

似乎哈士奇使用“git add”和源的绝对路径在这一点上以某种方式失败

我重命名了路径,它运行良好。

于 2019-11-04T12:50:28.437 回答
0

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

于 2017-02-03T16:43:43.033 回答
0

我的情况是 git 存储库的路径具有符号链接,当将文件添加到“/home/abc/GIT_REPO/my_dir/my_file”时,git 会抛出此错误。而“/home”实际上是一个指向“/devhome”的软链接。

当我尝试调试这个案例时,code ninja给了我一些启发。

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

然后一切都像魅力一样!

于 2018-03-08T04:06:31.853 回答
0

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

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

于 2021-02-18T06:57:20.130 回答