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

发布于 2024-08-03 17:17:45 字数 189 浏览 5 评论 0原文

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

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

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

有办法做到这一点吗?

I am trying to add a post-commit hook to a bare repository, such that whenever a commit is made the changed files are automatically installed in a (hardcoded) directory.

Is there a way to fetch a single file from the repository?

git-clone does not appear to allow for specifying a path, and any other commands that I found (git-fetch, git-pull) seem to require an existing local git repository to work.

Is there a way to do this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别挽留 2024-08-10 17:17:45

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

 $ 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

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

You can extract a single file from any revision in a bare repository with git show, using the syntax git show <rev>:<filename>, e.g.:

 $ 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

There are a couple of examples in the git-show(1) man page. I hope that's of some use.

魔法唧唧 2024-08-10 17:17:45

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

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

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

不要忘记尾部斜杠,否则此命令将无法完全满足您的要求。

You may find the answers in: How to do a "git export"

In particular, git checkout-index will probably do the job for you:

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

Don't forget the trailing slash or this command won't do exactly what you want.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文