gpt4 book ai didi

git - Git 在服务器的什么地方存储文件?

转载 作者:太空狗 更新时间:2023-10-29 13:51:50 27 4
gpt4 key购买 nike

我按照说明设置了 git here .但是,在创建测试文件、提交并将其推送到服务器后,我在 git 目录下的任何地方都看不到该文件。我希望它会出现在机器上的网络服务器可以看到它的某个地方,这样推送就会立即显示给服务器的 http 请求。

我知道 git 应该更独立一些,在客户端,文件形成一个可以以这种方式使用的很好的包。服务器不做同样的事情吗?

更新:我最初没有使用“裸”选项。但是当我这样做并尝试从远程执行初始提交时,我收到了一条我不太理解的大错误消息。

remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

因为我从来没有检查过任何东西,所以我不知道这意味着什么,也不知道我应该做什么。

最佳答案

在您的客户端似乎是一个存储库,实际上是两件事。位于 .git 中的实际存储库和您的工作树通常包含与当前 checkout 的提交对应的文件。

两者都很独立。工作树仅用于进行更改并随后更新存储库。

尽管乍一看您似乎在“存储库”中,但实际上您在工作树中。从那里您可以询问存储库以更新您的文件或将您的文件添加到存储库内的新提交中。 - 但是您的存储库本身永远不会改变您的工作树。


您的远程存储库是一个裸存储库,即它只是没有工作树的存储库。这是为了能够推送任意分支所必需的。

因为它缺少工作树,所以您无法在任何地方看到文件。 (即使有一些工作树,也不清楚要显示哪些文件。毕竟你的存储库包含许多提交,所有提交都有不同的内容。)

要实际“查看”这些文件,最简单的方法是将您的存储库克隆到您的 Web 服务器的目录中,然后检查正确的分支。 - 当然,只要主存储库发生变化,您就需要更新此存储库。这可以通过在主存储库中使用一个钩子(Hook)来实现。 post-receive-hook在这种情况下会很好。

关于git - Git 在服务器的什么地方存储文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20961920/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com