努力配置我的git存储库,但没有成功。
目标:一旦我推动我的lokal repo,到dev分支,它将与主brench合并。
更新后(挂钩)
#!/bin/bash # # An example hook script to prepare a packed repository for use over # dumb transports. # # To enable this hook, rename this file to "post-update". LOGFILE=/www/htdocs/w00dac5d/_production/.git_push_log.tmp &> $LOGFILE echo 'push-start' echo `basename $PWD` #cd ../ #echo `basename $PWD` git status git checkout master echo 'push-checkout' git merge dev exec git-update-server-info
得到错误,如
“它不是一个git repo”但是我检查了一个文件夹,它是正确的。
答案 0 :(得分:2)
这里的问题是,在非裸存储库的post-update
挂钩中,GIT_DIR
设置为.
,而您当前的目录是.git
目录。有关每个不同git挂钩的详细信息,请参阅this underrated blog post;)
这意味着,如果您执行cd ..
,那么GIT_DIR
仍然是.
,但您当前的目录将不再是.git
目录。尝试使用以下命令开始您的钩子脚本:
export GIT_DIR=/whereever/production/.git
export GIT_WORK_TREE=/whereever/production/
......安全 - 有关GIT_DIR
和GIT_WORK_TREE
如何互动的规则很繁琐。