2011-05-25 8 views
5

मैं केंद्रीय भंडारबैश स्क्रिप्ट के अंदर Git आदेश पर अमल

जो

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

#!/bin/bash 

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

यहाँ क्या मैं के बाद प्राप्त परीक्षण पर्यावरण के लिए केंद्रीय भंडार से अपडेट खींचती के लिए gitosis बाद धक्का हुक लिख रहा हूँ मेरे क्लाइंट (विकास वीएम) पर धक्का

# 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 

जाहिर है, गिट को बताने का मेरा प्रयास, जहां इसे खींचना चाहिए, असफल रहा।

बैश स्क्रिप्ट में निर्दिष्ट कार्य प्रतिलिपि के लिए गिट कमांड चलाने का सही तरीका क्या है?

+0

यह संभव है, शायद यहां तक ​​कि दस्तावेज (मैन पेज की जांच करने की आवश्यकता है) कि GIT_DIR को '।' पर सेट किया गया है। अपने हुक समारोह को संसाधित करते समय .... – sehe

उत्तर

5

जैसा कि बताया जा here या there, आप के साथ अपने सभी Git आदेशों पूर्व में होना हो सकता है:

env -i 

क्रम में, यकीन है कि वहाँ के साथ कोई पक्ष प्रभाव है बनाने के लिए उदाहरण के लिए, एक GIT_DIR वातावरण चर पहले से हो सकता था जो सेट।
(env -i या बस: unset GIT_DIR)

0

है /var/vh/holding एक Git भंडार? यानी आप git init चलाते हैं, अपने रिमोट सेट अप करते हैं, इसे अपनी होल्डिंग.git निर्देशिका आदि को ट्रैक करने के लिए सेट करते हैं? साथ ही, यदि आप उसी रेपो से नहीं खींच रहे हैं जिसे आप दबा रहे हैं, तो आपको reset और checkout की आवश्यकता नहीं होनी चाहिए।

संबंधित मुद्दे