उत्पादन में हिट पुश (एफ़टीपी)


130

मैं जानना चाहूंगा कि क्या जीआईटी रिपॉजिटरी को उत्पादन में धकेलने का एक आसान तरीका है (एफ़टीपी सर्वर पर)? धन्यवाद

जवाबों:


162

कुछ उपकरण हाल ही में गिट विकी में जोड़े गए :

René Moser द्वारा git-ftp, FTP Git तरीके से करने के लिए एक सरल शेल स्क्रिप्ट है। एफ़टीपी सर्वर पर केवल गिट ट्रैक की गई फ़ाइलों को अपलोड करने के लिए git-ftp.sh का उपयोग करें, जो पिछले अपलोड के बाद बदल गए हैं। इससे समय और बैंड की बचत होती है। यहां तक ​​कि अगर आप विभिन्न शाखाओं के साथ खेलते हैं, तो git-ftp.sh को पता है कि कौन सी फाइलें अलग हैं। कोई भी सामान्य एफ़टीपी ग्राहक ऐसा नहीं कर सकता है।

एडवर्ड जेड यांग द्वारा git-ftp एफ़टीपी के माध्यम से गिट रिपॉजिटरी में फ़ाइलों को अपलोड करने, केवल नई फ़ाइलों को स्थानांतरित करने और पुरानी फ़ाइलों को हटाने के लिए अजगर में लिखी गई एक सरल स्क्रिप्ट है।


3
git-ftp का उपयोग करते हुए, क्या निर्दिष्ट ftp निर्देशिका में सिर्फ एक उपनिर्देशिका (जैसे html5 बॉयलरप्लेट का प्रकाशित फ़ोल्डर) को पुश करने का एक तरीका है?
गैंग

और क्या होगा अगर टीम में कई डेवलपर्स हैं। क्या इस स्क्रिप्ट का उपयोग करना अभी भी संभव है?
Trilliput

@ ट्रिलिपट: यहां थोड़ी देर हो गई, लेकिन हां, एक मध्यवर्ती सर्वर / वीएम नेटवर्क पर उस जगह के रूप में जहां हर कोई धक्का देता है, और फिर: github.com/ezyang/git-ftp#using-a-bare-npository-as-a -प्रोक्सी
प्रणव

github.com/banago/PHPloy भी इसी तरह का काम करता है, लेकिन सबमॉडुल्स के साथ काम करता है, जिसके बारे में मुझे संदेह है कि कुछ उल्लिखित उपकरण इससे जूझ सकते हैं।
साइमन ईस्ट

Git-ftp के साथ मुख्य समस्या (सुनिश्चित स्क्रिप्ट या अजगर नहीं) मैंने कोशिश की थी कि फाइलों के बड़े हिस्से और फाइलों की लंबी सूची अपलोड करते समय यह बहुत बुरा था।
विन्ध्यदेव

14

यदि आप GUI पसंद करते हैं, तो SourceTree का उपयोग करें, आप आसानी से ऊपर बताए गए git-ftp का उपयोग करने वाले कस्टम क्रिया को सेट कर सकते हैं। सेटअप पर एक संक्षिप्त विवरण (मैक के लिए) एक एफ़टीपी के लिए एक गिट रिपॉजिटरी पुश पर

यहाँ छवि विवरण दर्ज करें


@ जूलिक्स उल्लेखित लेख के लिए।
गेरी बोरबास

11

मैंने PHP को FTP पर रिमोट सर्वर पर अपने Git कमिट भेजने के लिए एक महान उपकरण पाया है । यह कमांड-लाइन से काम करता है और पीएचपी में लिखा जाता है (और यहां तक ​​कि सबमॉड्यूल में बदलाव का भी पता लगाता है)।

https://github.com/banago/PHPloy

git commit ...
phploy -s staging
phploy -s production

किया हुआ!

(अस्वीकरण: थोड़ी देर के लिए इसका उपयोग करने के बाद मैंने अब कुछ कोड पैच और सुधारों में योगदान दिया है, जिससे इसे विंडोज-संगत बना दिया गया है।)


10

यदि आप एक मैक पर हैं और आपके पास ट्रांसमिट है, तो मैं निम्नलिखित git-tranmit स्क्रिप्ट की सिफारिश करूँगा ( https://gist.github.com/3797g )। यह केवल अंतिम अपडेट की गई फ़ाइलों को भेजने के लिए DockSend का उपयोग करता है। यदि आप डॉकसेंड से परिचित नहीं हैं, तो http://www.panic.com/blog/2010/11/15-secrets-of-trans// देखें

सेट अप:

  1. cp गिट-पारगमन / usr / sbin /।
  2. सीडी / यूएसआर / एसबीएन
  3. chmod + x गिट-ट्रांसमिट
  4. अपने लाइव ऐप के लिए सेटअप ड्रॉप भेजें
  5. अपने git रिपॉजिटरी में git-ट्रांसम चलाएँ।

1
यह स्क्रिप्ट बल्कि 'अंतिम अपडेट की गई फ़ाइलों' के चयन के बारे में अनाड़ी है। की जाँच करें इस कांटा एक और अधिक सुरुचिपूर्ण समाधान के लिए।
क्विकशिफ्टिन

इसके अलावा, आप केवल ट्रैक की गई और अनकम्फर्ड फ़ाइलों को प्रसारित करना चाह सकते हैं। यहाँ एक छोटी स्क्रिप्ट है जो सिर्फ इतना ही करती है: gist.github.com/borisdiakur/37b8f512f6f8865b79c7
borisdiakur

5

यह वह बात नहीं है, जिसके लिए सख्ती से बोलना चाहिए। हालाँकि, यदि आपका स्रोत कुछ ऐसा है जिसे संकलन या प्रसंस्करण की आवश्यकता नहीं है, तो एक वेबसाइट कहें जो पूरी तरह से html और जावास्क्रिप्ट फ़ाइलों और इसी तरह की है, तो आप अपने वेबसर्वर पर रेपो का एक क्लोन git pullरख सकते हैं और इसे बनाए रखने के लिए सर्वर से उपयोग कर सकते हैं। -तारीख तक। ध्यान दें, मैं आपके वेबसर्वर को git डाइरेक्टरी और ऐसे छिपाने के लिए कॉन्फ़िगर करूँगा। और यह सिर्फ सुरक्षा चिंताओं की शुरुआत है।

यदि आपके पास किसी प्रकार का संकलन या प्रसंस्करण है, तो आपको चींटी , मावेन , बिल्डआर , एसबीटी , आदि को देखना शुरू कर देना चाहिए ।


29
इसके साथ एकमात्र समस्या यह है कि जब आपके पास उत्पादन सर्वर तक पहुंच नहीं होती है, तो यह केवल एफ़टीपी एक्सेस के साथ सरल साझा होस्टिंग हो सकती है।
dodgy_coder

4

आप Deployhq.com का उपयोग कर सकते हैं यह एक आकर्षण की तरह काम करता है, केवल एक चीज जो आपको करने की ज़रूरत है वह है अपना रिपॉजिटरी और एफ़टीपी खाता सेट करना।

वे वर्तमान में निम्नलिखित संस्करण नियंत्रण प्रणाली हैं:

गिट, तोड़फोड़, मर्क्यूरियल।

भंडार के साथ मेजबानी की

  • GitHub
  • बिट बकेट
  • GitLab
  • codebase

यहाँ छवि विवरण दर्ज करें




1

यहां एक रूबी लिपि है - रूबी गिट-एफ़टीपी या एसएसएच के माध्यम से तैनात किया गया है जो केवल परिवर्तित फ़ाइलों को एफ़टीपी या एसएसएच के माध्यम से गिट रेपो में अपलोड करता है।

जैसा कि एक अन्य उत्तर में बताया गया है, यहाँ पायथन git-ftp.py स्क्रिप्ट है जो एक समान कार्य करता है।

और यहाँ git-ftp का शेल स्क्रिप्ट संस्करण है ।

एक रूबी मणि परियोजना भी है जिसे गिट-तैनाती कहा जाता है जो आपको git pushकमांड का उपयोग करते हुए एक गीट रिमोट के माध्यम से एक कस्टम तैनाती स्थापित करने देता है , उसी तरह से हरको और एज़्योर सेवाओं के रूप में। इसके लिए आपको एफ़टीपी के माध्यम से तैनात करने के लिए कस्टम तरीकों को लिखने की आवश्यकता हो सकती है और मुझे लगता है कि यह मानता है कि आपके पास अपने उत्पादन सर्वर तक एसएसएच पहुंच है।


0

यदि आप कोड को उत्पादन में डाल रहे हैं, तो मैं आपके कोड को स्थापित करने के लिए RPM पैकेज जैसे "इंस्टॉलर" का उपयोग करने की सलाह देता हूं। इस तरह से इस पर मुहर लग जाएगी और आप उत्पादन कोड के अपडेट का समर्थन करने के लिए इंस्टॉलर पैकेज का लाभ उठा सकेंगे। गिट वास्तव में उत्पादन प्रतिष्ठानों का समर्थन करने के लिए डिज़ाइन नहीं किया गया है, यह कोड में परिवर्तन को ट्रैक करने का इरादा है।

किसी भी घटना में, .RPM (या EXE या जो भी) बनाया गया है, आप इसे उत्पादन प्रणाली में बदल सकते हैं और इसे किसी अन्य पैकेज की तरह स्थापित कर सकते हैं।


5
वास्तविकता में इस उद्देश्य के लिए अच्छी तरह से लाभ उठाया जा सकता है। टैग की जाँच करें और किसी भी अधिष्ठापन प्रक्रिया को संभालने के लिए पोस्ट-चेकआउट, पोस्ट-मर्ज आदि हुक बनाएं। हम RPM पैकेज का उपयोग करते थे, लेकिन git में जाने के बाद बस ओवरकिल हो गया था।
d11wtq

0

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



0

मैं यह पता लगाने के लिए बहुत संघर्ष कर रहा था। मैंने विभिन्न स्रोतों ( git-ftpINSTALL , git-ftpUPLOAD , git-ftpIssue , git-ftpPUSH ) से इसे प्राप्त करने का एक आसान तरीका निकाला है । आप संदर्भ के लिए पढ़ सकते हैं लेकिन कोई आवश्यकता नहीं है क्योंकि मैंने नीचे चरण प्रक्रिया द्वारा चरण का उल्लेख किया है।

पहली बात पहली: मैक ओएस पर काढ़ा का उपयोग करके गिट और कर्ल स्थापित करें

brew install git
brew install curl --with-ssl --with-libssh2
brew install git-ftp

निम्न आदेश चलाएँ:

git clone https://github.com/git-ftp/git-ftp.git
cd git-ftp
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

गिट का उपयोग करके अद्यतन करना

git pull
git tag # see available tags
git checkout <tag> # checkout the latest tag by replacing <tag>
sudo make install

सेट अप

git config git-ftp.url YourFtpServerName.Net
git config git-ftp.user FtpUserName
git config git-ftp.password YourPassword

सभी फाइलें अपलोड करें

git ftp init

या अगर फाइलें पहले से हैं

git ftp catchup

काम और तैनाती

echo "Hello StackOverflow" >> index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"
git ftp push

यदि कोई त्रुटि है: pathspec 'index.txt' git के लिए ज्ञात किसी भी फ़ाइल (नों) से मेल नहीं खाता । इसका अर्थ है कि फ़ाइल का अभी तक मंचन नहीं किया गया है, इसलिए फ़ाइल जोड़ें और फिर प्रयास करें।

git add application/libraries/index.txt
git commit application/libraries/index.txt -m "I love StackOverflow"

उम्मीद है की यह मदद करेगा।


0

आप एफ़टीपीएल की कोशिश कर सकते हैं ...

https://ftploy.com

"पुश GitHub या Bitbucket में बदलता है।"

"अपने सर्वर पर स्वचालित रूप से परिवर्तन लागू करें"

आपके पास इसे आज़माने के लिए एक मुफ्त परियोजना है। मैं वर्तमान में एक छोटी php वेबसाइट के लिए उपयोग कर रहा हूँ और यह काफी अच्छी तरह से काम करता है। साइट पर कुछ कीड़े लेकिन इसकी एक सक्रिय परियोजना तो कम से कम वे इस पर काम कर रहे हैं।


1
मैंने इस उत्तर को समय से पहले पोस्ट किया। FTPloy काफी 'प्रोडक्शन रेडी' नहीं है और इसमें काफी बग हैं। मैं इसे काम नहीं कर सका। मैं DeployHQ का उपयोग कर रहा हूं जो बहुत अच्छी तरह से काम करता है।
डेव थॉम्पसन

0

की जाँच करें https://gitftp-deploy.com/ अगर आप MacOS और आप जीयूआई की तरह कर रहे हैं।

यह एक अच्छा सा अनुप्रयोग है जो परिवर्तन को ट्रैक करने और FTP के साथ केवल परिवर्तित फ़ाइलों को अपलोड करने के लिए Git का उपयोग करता है।

विशेष रूप से आसान है अगर आपको छोटी टीमों के साथ दर्जनों छोटी परियोजनाओं के लिए मासिक शुल्क का भुगतान करना पसंद नहीं है।

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