【发布时间】:2012-05-30 18:07:17
【问题描述】:
很像 this SO post,我有以下工作流程,我想用 git 维护:
- 多人本地开发
- 提交一些事情
- 提交更多内容
- 推送到暂存
- 在 Staging 上测试新代码
- 投入生产
我们的登台服务器为许多不同的站点提供服务。我想在用户主目录的不同文件夹中为每个设置存储库。每个存储库都有一个接收后挂钩 (ala the Daniel Messier article),用于将更改检出到该站点/存储库的 Web 根目录中。
给我带来麻烦的是六号。
当我尝试运行任何 git 命令时,我收到错误“致命:此操作必须在工作树中运行”。无论我是从存储库(/home/gituser/website1.git - 我认为无论如何都不应该工作..)还是从 Web 根目录(/var/www/website1)运行“git status”,我都会收到此错误.
但是,如果我指定 GIT_DIR 和 GIT_WORK_TREE,那么我可以运行 git 命令。这两种方法都有效:
$ git --git-dir /home/gituser/website1.git --work-tree /var/www/website1 status
$ GIT_DIR=/home/gituser/website1.git GIT_WORK_TREE=/var/www/website1 git status
所以我需要:
- 在每个命令中键入目录和工作树的替代方法
- 将它们设置为持久环境变量的替代方法,因为这仅适用于 website1,而不适用于 website2、website3 等
我这样做对吗?如何获取 git 每个存储库所需的目录信息?
【问题讨论】:
标签: git repository