代码之家  ›  专栏  ›  技术社区  ›  knipknap

克隆裸Git存储库的单个路径

  •  2
  • knipknap  · 技术社区  · 15 年前

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

    是否有方法从存储库中提取单个文件?

    Git克隆似乎不允许指定路径,我发现的任何其他命令(Git fetch、Git pull)似乎都需要一个现有的本地Git存储库才能工作。

    有办法吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Community CDub    8 年前

    您可以在以下位置找到答案: How to do a "git export"

    特别地, git checkout-index 可能会为你做这项工作:

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

    别忘了后面的斜杠,否则这个命令不能完全满足您的需要。

        2
  •  3
  •   Mark Longair    15 年前

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

     $ ls
     branches  config  description  HEAD  hooks  info  objects  packed-refs  refs
     $ git show master:COPYING > /tmp/COPYING
     $ head -5 /tmp/COPYING
                         GNU GENERAL PUBLIC LICENSE
                            Version 3, 29 June 2007
    
      Copyright (C) 2007 Free Software Foundation, Inc. 
      Everyone is permitted to copy and distribute verbatim copies
    

    a couple of examples in the git-show(1) man page . 我希望这有点用处。