git 无法一次性 add / commit 大量文件?

2016-04-24 08:58:04 +08:00
 lua

OS X 系统,使用 git 一次性导入大量文件,文件列表参数由程序自动生成, n 大于 4096 :

git add -- <file1> <file2> ... <filen>

运行命令出现错误:

too many arguments (6861) -- limit is 4096

git 高手们有遇到这种情况吗,该怎么解决?

16629 次点击
所在节点    git
54 条回复
Haku
2016-04-24 17:33:56 +08:00
too many arguments 是指参数太多,也就是命令用错的意思....
tsl0922
2016-04-24 17:41:52 +08:00
如果想忽略当前 index 内容只提交特定文件可以使用: git commit --only -m <msg> -- <file>...
strwei
2016-04-24 17:45:22 +08:00
git add -A
mhtt
2016-04-24 20:48:13 +08:00
git add -A ?
cheerzeng
2016-04-24 21:14:45 +08:00
如果是同类文件,以 python 文件为例,可以 git add *.py
至于 commit ,跟 add 几次没关系啊
pynix
2016-04-24 21:31:42 +08:00
分成 2 批。。。
wensonsmith
2016-04-24 22:07:18 +08:00
git add -A
starcraft
2016-04-24 22:31:04 +08:00
今天也碰到了添加的问题 刚好搜了研究下-A 的命令
kirisetsz
2016-04-24 23:31:33 +08:00
这个是 shell 或者系统调用的限制解法嘛,把结果导入 xargs 转换一下吧 find . -print0 -type f | xargs -n1 git add -- 这样。
busyluo
2016-04-25 06:43:18 +08:00
用 gitgit stage 添加要提交的文件

http://m.blog.csdn.net/article/details?id=50357277
chuxiwen
2016-04-25 08:37:12 +08:00
too many arguments (6861) -- limit is 4096

这个是 shell 的限制,可以自写个 shell script 克服这个问题

http://stackoverflow.com/questions/13781216/bash-meaning-of-too-many-arguments-error-from-if-square-brackets
allenforrest
2016-04-25 09:28:09 +08:00
感觉是做文件云同步,底层机制用 git 实现
darasion
2016-04-25 10:25:56 +08:00
是 shell 的限制。即便你不用 git ,删除这么多文件也是有问题的。

一般命令行参数太多了或者不能预期是多少的时候,都得用 xargs 命令展开一下。
SmiteChow
2016-04-25 17:25:17 +08:00
顶楼上,楼上说的展开就是走管道,妥妥的没问题

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/273985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX