与这个 Stack Overflow 帖子类似,我有以下希望在 git 中保持的工作流程:
最后一个步骤第六步使我烦恼。
当我尝试运行任何 git 命令时,都会收到“致命错误:此操作必须在工作树中运行”的错误。无论我是从存储库 (/home/gituser/website1.git - 我认为这样不应该工作..) 还是从网站根目录 (/var/www/website1) 运行 'git status',都会遇到此错误。
但是,如果我指定了 GIT_DIR 和 GIT_WORK_TREE,则可以运行 git 命令。这两个命令都有效:
- 多个人在本地开发
- 提交一些东西
- 再次提交更多东西
- 推送到测试环境
- 在测试环境上测试新代码
- 推送到生产环境
最后一个步骤第六步使我烦恼。
当我尝试运行任何 git 命令时,都会收到“致命错误:此操作必须在工作树中运行”的错误。无论我是从存储库 (/home/gituser/website1.git - 我认为这样不应该工作..) 还是从网站根目录 (/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
所以我需要:
- 在每个命令中输入目录和工作树的替代方法
- 在持久环境变量中设置它们的替代方法,因为那只适用于网站1,而不是网站2、网站3等
我这样做对吗?如何为每个存储库获取git所需的目录信息?