2

我正在尝试将提交后挂钩添加到裸存储库,这样每当提交时,更改的文件就会自动安装在(硬编码)目录中。

有没有办法从存储库中获取单个文件?

git-clone 似乎不允许指定路径,并且我发现的任何其他命令(git-fetch、git-pull)似乎都需要现有的本地 git 存储库才能工作。

有没有办法做到这一点?

4

2 回答 2

3

git show您可以使用语法从裸存储库中的任何修订中提取单个文件git show <rev>:<filename>,例如:

$ ls
 分支 配置 描述 HEAD 挂钩 信息 对象 packed-refs refs
 $ git show master:COPYING > /tmp/COPYING
 $ 头 -5 /tmp/复制
                     GNU 通用公共许可证
                        第 3 版,2007 年 6 月 29 日

  版权所有 (C) 2007 Free Software Foundation, Inc.
  每个人都可以复制和分发逐字副本

git-show(1) 手册页中有几个示例。我希望这有点用。

于 2010-06-25T10:16:47.160 回答
2

您可以在以下位置找到答案:如何进行“git 导出”

特别是,git checkout-index可能会为您完成这项工作:

git checkout-index -a -f --prefix=/destination/path/

不要忘记结尾的斜杠,否则此命令不会完全按照您的意愿执行。

于 2009-09-01T07:55:30.207 回答