Git add命令失败,说"文件名太长"

use*_*723 10 git version-control

我初始化了一个git存储库,用于添加Oracle Weblogic服务器的本地实例(是!),以便使用git对其进行版本化.

oracle文件位于c:\ Oracle中.所以我需要将相同的内容添加到git中

我发出了以下命令

git init(在c:\中有Oracle目录)

在c:\中添加了一个.gitignore目录,并忽略了c:\中除Oracle之外的所有目录

然后运行'git status'来查看状态.正如所料,它显示了以下内容

C:\>git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .gitignore
#       Oracle/
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)

现在,我做了一个git add*上面的命令按预期抛出了一些详细的输出,显示了正在添加的文件并以下面结束(命令输出的尾部显示在下面)

....
base_domain/servers/AdminServer/tmp/.appmergegen_1387484701373_liferay-portal-6.
1.30-ee-ga3-20130812170130063.war/html/VAADIN/themes/runo/tree/tree.css.
The file will have its original line endings in your working directory.
warning: LF will be replaced by CRLF in Oracle/Middleware/user_projects/domains/
base_domain/servers/AdminServer/tmp/.appmergegen_1387484701373_liferay-portal-6.
1.30-ee-ga3-20130812170130063.war/html/VAADIN/themes/runo/window/window.css.
The file will have its original line endings in your working directory.
fatal: unable to stat 'Oracle/Middleware/user_projects/domains/base_domain/serve
rs/AdminServer/tmp/.appmergegen_1387484701373_liferay-portal-6.1.30-ee-ga3-20130
812170130063.war/html/VAADIN/widgetsets/com.vaadin.portal.gwt.PortalDefaultWidge
tSet/043D1FB3F694D0D6D3ACFB33DB80E43D.cache.html': Filename too long
Run Code Online (Sandbox Code Playgroud)

然后我发出了一个git状态来查看是否添加了文件

C:\>git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .gitignore
#       Oracle/
nothing added to commit but untracked files present (use "git add" to track)
Run Code Online (Sandbox Code Playgroud)

所以似乎没有添加任何内容.该文件夹对于git来说太大了吗?

每当我使用存储库时,我都尝试过Bazaar及其GUI控件冻结.现在我正在尝试使用Mercurial来查看它是否可以处理它.

neh*_*iah 8

像这样重新映射到更短的驱动器 subst X: C:\<__relevant_lengthy_path__>\

-

我有类似的遭遇,证实了Windows最大路径长度为 260 char限制

我处理的方式是使用SUBST(替换)命令,例如,将任何冗长的文件夹映射到单个字母驱动器subst X: C:\<__relevant_lengthy_path__>\

然而在你的情况下,很遗憾,你有git inited,C:\这是不寻常和勇敢:)


Sto*_*ica 6

我严重怀疑你真的需要那个.../tmp/...目录.git add有任何错误时失败.如果添加您指定的任何文件时出现问题,则不会添加任何内容.

我建议忽略tmp目录:

echo tmp >> .gitignore
git add .
Run Code Online (Sandbox Code Playgroud)

这将忽略tmp项目中的所有目录.如果要忽略特定tmp目录,可以指定其完整路径:

echo path/to/AdminServer/tmp >> .gitignore
git add .
Run Code Online (Sandbox Code Playgroud)

由于长文件名位于tmp示例输出的该目录中,因此忽略git add .应该工作的目录.

  • 我不知道.但问题是特定于Windows的:我在Mac上创建的路径是你的两倍,而Git没有问题. (2认同)

Baz*_*Baz 5

Cygwin救援!通过Cygwin的Git运行相同的命令为我工作.