10

gitosis中央リポジトリのプッシュ後フックを作成しています

中央リポジトリからテスト環境に更新をプルします

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 git@cheby.ru:holding.git
   233b5a2..0f46cd8  testing -> testing

明らかに、プルする場所を git に伝えようとした私の試みは失敗しました。

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

4

3 に答える 3

5

ここそこかで述べたように、すべてのgitコマンドの前に次のものを付けることができます。

 env -i

GIT_DIRたとえば、以前に設定された可能性のある環境変数に副作用がないことを確認するため。
env -iまたは単にunset GIT_DIR:)

于 2011-05-25T10:37:10.550 に答える
0

/var/vh/holdinggitリポジトリですか?つまり、実行git initしたり、リモートを設定したり、holding.git ディレクトリを追跡するように設定したりしましたか? また、プッシュ先と同じリポジトリからプルしていない場合は、 and は必要ありませresetcheckout

于 2011-05-25T12:54:56.627 に答える