是否可以将文件添加/提交到本地裸Git repo的索引中?

是否可以将文件添加/提交到本地裸Git repo的索引中?,git,grit,Git,Grit,我在胡闹红宝石砂砾宝石。。。了解如何使用它来管理/访问正在运行的Gitosis服务器。有人知道是否可以将文件添加/提交到本地裸机repo,或者我需要设置本地“正常”repo并使用SSH将其推送到本地主机上的裸机repo吗?您需要一个工作树将文件添加到索引并提交。 虽然可以通过管道命令直接更改裸git repo的内部内容,但我确实建议设置一个普通克隆,修改它并将结果提交推回到裸git repo。您应该能够使用低级管道命令来完成此操作: $ generate_contents | git hash-

我在胡闹红宝石砂砾宝石。。。了解如何使用它来管理/访问正在运行的Gitosis服务器。有人知道是否可以将文件添加/提交到本地裸机repo,或者我需要设置本地“正常”repo并使用SSH将其推送到本地主机上的裸机repo吗?

您需要一个工作树将文件添加到索引并提交。

虽然可以通过管道命令直接更改裸git repo的内部内容,但我确实建议设置一个普通克隆,修改它并将结果提交推回到裸git repo。

您应该能够使用低级管道命令来完成此操作:

$ generate_contents | git hash-object -t blob -w --stdin $ git update-index --cacheinfo 100644 sha1 path $generate_contents |-t blob-w--stdin $--cacheinfo 100644 sha1路径 其中,sha1是上一个命令的结果

但裸存储库只用于推送或从中获取。裸存储库根本不需要索引

由于向索引中添加文件很重要,请注意cacheinfo有一个新语法:

--cacheinfo <mode>,<object>,<path>
--cacheinfo <mode> <object> <path>
--cacheinfo,,
--缓存信息
直接将指定的信息插入索引。
为了向后兼容,您也可以将这三个参数作为三个单独的参数提供,但是鼓励新用户使用单参数形式

参见2014年3月,Git 2.0+的一部分:

更新索引
:教授
缓存信息
新语法“
模式,sha1,路径

--cacheinfo
”选项与众不同,因为它包含三个选项参数。
带有可选参数的选项已经够糟糕的了。
有多个参数的选项简直是疯了

引入一种新的语法,将这三个元素用逗号连接在一起,这使得命令行语法在子命令之间更加统一,同时保留了传统语法以实现向后兼容


注意:只有git 2.0.X/2.1(2014年第三季度)处理空案例:
见:

在没有任何其他参数的情况下运行“
git update index--cacheinfo
”将导致segfault而不是错误消息。(更新索引:teach
--cacheinfo
新语法“
模式,sha1,路径
”,2014-03-23)添加了检查参数格式的代码,但忘记处理NULL大小写

从解析器返回一个错误就足够了,因为我们随后将其视为旧式的“
--cacheinfo
”,并抱怨要读取的参数少于3个


git更新索引返回
致命:未知选项--cache info
。git版本1.7.2.5
git更新索引--添加--cacheinfo 100644 sha1路径
应该可以工作!