execute git command inside bash script

不问归期 提交于 2019-12-01 03:47:10

问题


I am writing gitosis post-push hook for central repository

which pulls updates from central repository to testing enviroment

nano /var/git/repositories/holding.git/hooks/post-update

 #!/bin/bash

 cd /var/vh/holding;
 git reset --hard;
 git checkout testing;
 git pull;

here what I get after push on my client (development 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 git@cheby.ru:holding.git
   233b5a2..0f46cd8  testing -> testing

Obviously, my attempt to tell git, where it should do pull, failed.

What is correct way to run git command for a specified working copy in bash script?


回答1:


As mentioned here or there, you could precede all your git commands with:

 env -i

in order to make sure there is no side effect with, for instance, a GIT_DIR environment variable which could have been previously set.
(env -i or simply: unset GIT_DIR)




回答2:


Is /var/vh/holding a git repository? i.e. have you run git init on it, set up your remotes, set it to track your holding.git directory, etc.? Also, if you're not pulling from the same repo you're pushing to, you shouldn't need the reset and checkout.



来源:https://stackoverflow.com/questions/6122932/execute-git-command-inside-bash-script

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!