我想在我的服务器上创建一个git repo,以便在推送后更新我的网站。我找到的所有教程的第一步(例如:http://developertheory.com/how-to-auto-deploy-apps-after-git-push/)是这个命令:
git init --bare
在接下来的步骤中,我应该输入以下命令:
git config core.worktree /path/to/git/deploy
git config core.bare false
git config receive.denycurrentbranch ignore
第二个命令(git config core.bare false
)将repo设置为non-bare。为什么我们将repo初始化为裸机,然后将其设置为非裸机?!
答案 0 :(得分:1)
我怀疑本教程使用git init --bare
作为一种“干净”的方式来创建一个无法与实际文件混合的空repo:
这样的回购将直接包含.git
常用内容,即使在重新配置为非裸版之后也是如此。
你需要一个非裸的repo来使git checkout
(在钩子中)工作,因为你只能在非裸仓库中检查一个分支(根据定义,一个裸的仓库没有工作树)
我不推荐这种部署方法,我更喜欢:
参见例如: