首页/开发/Git 与协作速查/git init --bare 裸仓库
Git 基础与命令88 条

git init --bare 裸仓库

创建不含工作区的裸仓库,作为团队共享的服务端仓库或迁移中转站;--shared 控制组用户写权限,服务端钩子放在 hooks 目录。

Git 与协作速查开发更新于 2026-10-12
用途创建服务端/中转仓库
区别无工作区,不能直接改文件
常用参数--bare;--shared[=umask] 组共享

常用示例

常用示例
git init --bare project.git
git init --bare --shared=group project.git
# 本地已有仓库推入裸库
git remote add origin /srv/git/project.git
git push -u origin main
裸仓库可承载服务端钩子(hooks/pre-receive 等),用于推送校验与自动化流程。

易错点

  • 裸仓库里执行普通 git 命令会报「this operation must be run in a work tree」,别在服务端目录里改文件
  • 直接 cp -r 复制仓库当备份不完整(缺钩子与权限),服务端库备份建议用 git clone --mirror 或 git bundle

数据来源与参考

  • Git 官方文档:git-init(--bare/--shared)
  • Pro Git 2nd Edition · 4.1 协议
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌