2012-06-05 13 views
5

सारांश में पुश करें: मैं स्थानीय रूप से फ़ाइलों को संपादित करना चाहता हूं, फिर गीथब और मेरे वेब सर्वर दोनों को दबाएं।रिमोट सर्वर और गीथब

मेरे पास बिना किसी समस्या के दो रिमोट सेट हैं, इसलिए अभी मैं ऐसा करने में सक्षम हूं; हालांकि, मुझे शाखा ए को स्थानीय रूप से चेक किया गया है, और सर्वर पर शाखा बी है। तब मुझे सर्वर में एसएसएच करना होगा और शाखा ए (जिसे मैं चाहता हूं) देखें। मैं वास्तव में एक दूसरी शाखा भी नहीं चाहता या चाहता हूं, लेकिन कई पदों से पता चलता है कि आप गैर-नंगे भंडार को धक्का नहीं दे सकते हैं या नहीं। इसके लिए अवश्य ही एक बेहतर तरीका होना चाहिए। ' यहां तक ​​कि बस rsync का उपयोग करना इससे भी आसान होगा (और मैंने इसे थोड़ी देर के लिए किया था)।

आश्चर्यजनक रूप से, यह गीथूब पर कभी नहीं होता है। लगभग सभी मेरे रिपो में केवल एक शाखा है और मुझे यह चेतावनी कभी नहीं मिली है।

चेतावनी संदेश कहता है कि आप receive.denyCurrentBranch को अनदेखा करने के लिए सेट कर सकते हैं, लेकिन मुझे नहीं पता कि यह कितना सुरक्षित/सुरक्षित है। मुझे उम्मीद है कि कोई मेरे अस्पष्ट वर्णन को समझ जाएगा (जो कि गिट के सीमित ज्ञान के कारण है) और इष्टतम समाधान को जानें।

उत्तर

4

अपने वेब सर्वर पर एक नंगे रेपो पर पोस्ट-प्राप्त हुक सेट करना आसान होगा।
इस तरह, यह हुक कर सकते हैं:

  • परिवर्तन निर्देशिका और वास्तविक गैर नंगे रेपो
  • चेकआउट शाखा आप चाहते हैं

"Git Post-Receive Hook for Website Staging" देखो और काम करने के लिए नए परिवर्तन खींच में "Using Git to manage a web site":

$ mkdir /var/www/www.example.org 
$ cat > hooks/post-receive 
#!/bin/sh 
GIT_WORK_TREE=/var/www/www.example.org git checkout -f 
$ chmod +x hooks/post-receive 

(नोट: मजेदार तथ्य यह है, आप कर सकते हैं push to two different remote repos simultaneously)

+0

मुझे पचाने में एक मिनट लग गया: '/ var/www/www.example.org' सर्वर पर वास्तविक साइट डीआईआर है, 'पोस्ट-प्राप्त' फ़ाइल सर्वर पर नंगे रेपो में जाती है (होना चाहिए एक अलग डीआईआर), और यूआरएल को धक्का देने के लिए यूआरएल है। मैं वास्तव में उस गाइड को पढ़ता हूं जिसे आपने पूछने से पहले उल्लेख किया था। जब मैं site.git dir में मेरी कोई भी फाइल नहीं थी, तो मुझे उलझन में आया, लेकिन मुझे लगता है कि मैं समझता हूं कि यह अब कैसे काम करता है। धन्यवाद। – Daniel