मैं SSH पर किसी फ़ोल्डर में Git रिपॉजिटरी को कैसे पुश कर सकता हूं?


53

मेरे पास एक फ़ोल्डर है जिसे मेरा प्रोजेक्ट कहा जाता है जिसके अंदर मैंने git init , git कमिट -a , आदि किया है।

अब मैं इसे एक दूरस्थ सर्वर पर / mnt / foo / bar में एक खाली फ़ोल्डर में धकेलना चाहता हूं।

मैं यह कैसे कर सकता हूँ?

मैंने जो पढ़ा, उसके आधार पर मैंने कोशिश की:

cd my-project
git remote add origin ssh://user@host/mnt/foo/bar/my-project.git
git push origin master

जो सही नहीं लगा (मुझे लगता है कि स्रोत गंतव्य से पहले आएगा) और यह विफल रहा:

fatal: '/mnt/boxee/git/midwinter-physiotherapy.git' does not appear to be a git repository
fatal: The remote end hung up unexpectedly

मैं ऐसा काम करना चाहूंगा कि मुझे हर बार रिमोट होस्ट और मैन्युअल रूप से एक गिट रिपॉजिटरी में प्रवेश न करना पड़े ... क्या मुझे ऐसा करना पड़ेगा? क्या मैं बिल्कुल सही मार्ग पर जा रहा हूं?

धन्यवाद।

जवाबों:


56

आज्ञा सही है; हालाँकि, दूरस्थ पते को एक आरंभिक गिट रिपॉजिटरी की ओर भी इंगित करना चाहिए। यह एक बार का काम है, हालांकि।

ssh user@host "git init --bare /mnt/foo/bar/my-project.git"

(गिट में, एक "नंगे" भंडार एक काम के पेड़ के बिना एक है।)


11

यदि आप रेपो को पुश करना चाहते हैं और सर्वर पर फाइल अपडेट करना चाहते हैं, तो आप फ़ाइलों को चेक करने के लिए सर्वर-साइड गिट हुक बना सकते हैं, जिसके बाद उन्हें पुश किया गया है। में सर्वर साइड Git /hooks/निर्देशिका नाम की एक फ़ाइल बनाने post-receiveऔर जोड़ने के निम्नलिखित कोड (अपने फ़ोल्डर संरचना से मेल करने निर्देशिका अपडेट करना):

#!/bin/sh
git --work-tree=/var/www/domain.com --git-dir=/var/repo/site.git checkout -f

फिर फ़ाइल का उपयोग करके उचित अनुमति दें chmod +x post-receive

अधिक जानकारी और यहां एक विस्तृत विवरण: https://www.digitalocean.com/community/tutorials/how-to-set-up-automatic-deployment-with-git-with-a-vps


2

यदि आप सर्वर पर मैन्युअल रूप से रिपॉजिटरी नहीं बनाना चाहते हैं, तो आप गिटोसिस स्थापित कर सकते हैं , जो प्रक्रिया को स्वचालित करेगा। लेकिन रिपॉजिटरी बनाने के लिए आपको सर्वर पर कुछ प्रक्रिया करनी होगी - आप इसे क्लाइंट से git ssh कनेक्शन पर नहीं कर सकते।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.