AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 446302
Accepted
Chris Watts
Chris Watts
Asked: 2012-11-08 05:48:38 +0800 CST2012-11-08 05:48:38 +0800 CST 2012-11-08 05:48:38 +0800 CST

不确定我的 git 存储库在哪里存储文件

  • 772

我制作了一个远程 git 存储库

mkdir /var/www/html/myproject.git
chmod 0770 /var/www/html/myproject.git
ln -s /var/www/html/myproject.git myproject.git
cd myproject.git
git --bare init

并成功连接到它并在我自己的机器上克隆它

git clone [email protected]:myproject.git

然后上传一些文件到它

git push

再次尝试时显示存储库已经是最新的。

但是,我在远程服务器上环顾四周,实际上找不到 git 存储这些文件的位置!它不在/var/www/html/nor中/home/git,我唯一设法找到的是 HEAD 文件,其中包含我在/var/www/html/myproject.git/refs/heads/master. (所以我知道推动有效)

这些文件可能在哪里?

git
  • 1 1 个回答
  • 3904 Views

1 个回答

  • Voted
  1. Best Answer
    Chris Watts
    2012-11-08T16:54:28+08:002012-11-08T16:54:28+08:00

    答案实际上是objects/pack在裸存储库中时,所有文件都作为散列文件存储在目录中。您不能直接从那里获取文件。

    如果有人碰巧尝试做我所做的事情并在服务器上有一组可由 git 管理的文件(例如,网络服务器),那么您需要改为执行以下操作:

    克隆你希望文件可以访问的存储库(确保 git 可以写入它,尤其是里面的 .git 目录)

    mkdir /path/to/clone/repo
    chmod -R 0775 /path/to/clone/repo
    cd /path/to/clone/repo
    git clone /path/to/bare/repo.git
    

    在包含以下行的裸存储库中创建一个新的更新后挂钩:

    vi /path/to/bare/repo.git/hooks/post-update
    #!/bin/sh
    # Update the real-file cloned repository
    unset GIT_DIR
    cd /path/to/cloned/repo
    git fetch
    git reset --hard
    

    确保它是可执行的

    chmod a+x /path/to/bare/repo.git/hooks/post-update
    

    将提交推送到裸存储库并记下开头的行remote:以查看是否发生任何错误。

    • 3

相关问题

  • 如何使用 Gitosis 删除 Git 存储库

  • Git 和 Mercurial

  • 如何修复 git 中第一次提交的元信息?

  • 如何编辑 git 的历史记录以更正不正确的电子邮件地址/名称 [关闭]

  • git如何控制访问权限

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve