我正在为中央存储库编写gitosis
后推 Hook
将更新从中央存储库 pull 到测试环境nano /var/git/repositories/holding.git/hooks/post-update
#!/bin/bash
cd /var/vh/holding;
git reset --hard;
git checkout testing;
git pull;
在推送客户端(开发VM)后,我得到了什么
# blah ...
Counting objects: 57, done.
Compressing objects: 100% (24/24), done.
Writing objects: 100% (30/30), 3.42 KiB, done.
Total 30 (delta 18), reused 0 (delta 0)
fatal: Not a git repository: '.'
fatal: Not a git repository: '.'
fatal: Not a git repository: '.'
fatal: Not a git repository: '.'
To [email protected]:holding.git
233b5a2..0f46cd8 testing -> testing
显然,我尝试告诉git应该在哪里执行pull的尝试失败了。
在bash脚本中为指定的工作副本运行git命令的正确方法是什么?
最佳答案
如here或there所述,您可以在所有git命令之前添加:
env -i
为了确保没有副作用,例如,以前可能已设置的
GIT_DIR
环境变量。(
env -i
或简称:unset GIT_DIR
)关于git - 在bash脚本中执行git命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6122932/