Is --bare option equal to core.bare config in Git?

后端 未结 1 2013
迷失自我
迷失自我 2021-01-16 08:33

I want to create a git repo on my server to update my website after pushing. The first step of all tutorials(such as this: http://developertheory.com/how-to-auto-deploy-apps

相关标签:
1条回答
  • 2021-01-16 09:04

    I suspect this tutorial uses git init --bare as a "clean" way to create an empty repo which cannot be mixed with the actual files:

    Such a repo will contain directly the .git usual content, even after being re-configure as non-bare.
    You need a non-bare repo in order for the git checkout (in the hook) to work, since you can only checkout a branch in a non-bare repo (a bare one, by definition, has no working tree).

    I wouldn't recommend that method for deployment though, and I prefer:

    • keeping that repo bare in order to push to it
    • setting up a second repo, non-bare
    • adding a post-receive hook on the first (bare) repo in order for the second one to pull from what the first one just received.

    See for instance:

    • "firing a git hook on the client"
    • "Git checkout in post-receive hook: “Not a git repository '.'”"
    0 讨论(0)
提交回复
热议问题