दिलचस्प पोस्ट
Google Maps API V3 Infobox.js हटा दिया गया 0 – 100 के बीच प्रधान संख्याओं को कैसे ढूंढें? स्ट्रिंग के रूप में अपने कच्चे एसक्यूएल क्वेरी को आउटपुट करने के लिए मैं क्वेरी बिल्डर कैसे प्राप्त करूं? java.util.NoSuchElementException – स्कैनर उपयोगकर्ता इनपुट पढ़ रहा है पायथन: प्रत्येक कुंजी के लिए एक पंक्ति के साथ एक सीएसवी फ़ाइल में एक शब्दकोश लिख रहा है: मान ' ASP.NET MVC हैंडलएअरर पायथन डीबगर के साथ आरंभ करना, पीडीबी URL से डाउनलोड / स्ट्रीम फ़ाइल – asp.net जावा में उपयोगकर्ता की होम डाइरेक्टरी को खोजने का सबसे अच्छा तरीका क्या है? कोणीय UI- राउटर $ urlRouterProvider। जब मैं कार्य नहीं करता <a ui-sref="…"> क्लिक करता हूँ क्या एक पूरे आवेदन के लिए संस्कृति स्थापित करने का एक तरीका है? सभी वर्तमान धागे और नए धागे? मोंगोडीबी: एकत्रीकरण ढांचे: अंतिम तिथि वाले दस्तावेज प्रति समूह आईडी प्राप्त करें ByteBuffer.allocate () बनाम ByteBuffer.allocateDirect () कोको ऐप से एक टर्मिनल कमांड निष्पादित करें रूबी में "और" और && के बीच का अंतर?

गिट धक्का का उपयोग करके एक प्रोजेक्ट को परिनियोजित करें

क्या git push का उपयोग करके वेबसाइट को लागू करना संभव है? मेरे पास एक कूबड़ है जिसमें गिट रीकसेट करने के लिए गिट हुक का इस्तेमाल करने के साथ कुछ करना है – सर्वर साइड पर git reset --hard , लेकिन मैं इसे पूरा करने के बारे में कैसे जाना होगा?

वेब के समाधान से एकत्रित समाधान "गिट धक्का का उपयोग करके एक प्रोजेक्ट को परिनियोजित करें"

मुझे इस साइट पर यह स्क्रिप्ट मिली और यह काफी अच्छी तरह से काम करता है।

  1. अपने .git निर्देशिका पर अपने वेब सर्वर पर कॉपी करें
  2. अपनी स्थानीय प्रति पर, अपनी .git / config फाइल को संशोधित करें और अपने वेब सर्वर को रिमोट के रूप में जोड़ें:

     [remote "production"] url = username@webserver:/path/to/htdocs/.git 
  3. सर्वर पर, इस फ़ाइल के साथ .git / hooks / post-update को बदलें (नीचे दिए गए उत्तर में)

  4. फाइल को एक्जिक्यूट एक्सेस जोड़ें (सर्वर पर फिर से):

     chmod +x .git/hooks/post-update 
  5. अब, बस स्थानीय रूप से अपने वेब सर्वर पर पुश करें और इसे स्वचालित रूप से कार्यशील प्रतिलिपि अद्यतन कराना चाहिए:

     git push production 

नीचे पोस्ट-अद्यतन फ़ाइल का उपयोग करना:

  1. अपने .git निर्देशिका पर अपने वेब सर्वर पर कॉपी करें
  2. अपनी स्थानीय प्रति पर, अपनी .git / config फाइल को संशोधित करें और अपने वेब सर्वर को रिमोट के रूप में जोड़ें:

     [remote "production"] url = username@webserver:/path/to/htdocs/.git 
  3. सर्वर पर, नीचे फ़ाइल के साथ .git / hooks / post-update को बदलें

  4. फाइल को एक्जिक्यूट एक्सेस जोड़ें (सर्वर पर फिर से):

     chmod +x .git/hooks/post-update 
  5. अब, बस स्थानीय रूप से अपने वेब सर्वर पर पुश करें और इसे स्वचालित रूप से कार्यशील प्रतिलिपि अद्यतन कराना चाहिए:

     git push production 
 #!/bin/sh # # This hook does two things: # # 1. update the "info" files that allow the list of references to be # queries over dumb transports such as http # # 2. if this repository looks like it is a non-bare repository, and # the checked-out branch is pushed to, then update the working copy. # This makes "push" function somewhat similarly to darcs and bzr. # # To enable this hook, make this file executable by "chmod +x post-update". git-update-server-info is_bare=$(git-config --get --bool core.bare) if [ -z "$is_bare" ] then # for compatibility's sake, guess git_dir_full=$(cd $GIT_DIR; pwd) case $git_dir_full in */.git) is_bare=false;; *) is_bare=true;; esac fi update_wc() { ref=$1 echo "Push to checked out branch $ref" >&2 if [ ! -f $GIT_DIR/logs/HEAD ] then echo "E:push to non-bare repository requires a HEAD reflog" >&2 exit 1 fi if (cd $GIT_WORK_TREE; git-diff-files -q --exit-code >/dev/null) then wc_dirty=0 else echo "W:unstaged changes found in working copy" >&2 wc_dirty=1 desc="working copy" fi if git diff-index --cached HEAD@{1} >/dev/null then index_dirty=0 else echo "W:uncommitted, staged changes found" >&2 index_dirty=1 if [ -n "$desc" ] then desc="$desc and index" else desc="index" fi fi if [ "$wc_dirty" -ne 0 -o "$index_dirty" -ne 0 ] then new=$(git rev-parse HEAD) echo "W:stashing dirty $desc - see git-stash(1)" >&2 ( trap 'echo trapped $$; git symbolic-ref HEAD "'"$ref"'"' 2 3 13 15 ERR EXIT git-update-ref --no-deref HEAD HEAD@{1} cd $GIT_WORK_TREE git stash save "dirty $desc before update to $new"; git-symbolic-ref HEAD "$ref" ) fi # eye candy - show the WC updates :) echo "Updating working copy" >&2 (cd $GIT_WORK_TREE git-diff-index -R --name-status HEAD >&2 git-reset --hard HEAD) } if [ "$is_bare" = "false" ] then active_branch=`git-symbolic-ref HEAD` export GIT_DIR=$(cd $GIT_DIR; pwd) GIT_WORK_TREE=${GIT_WORK_TREE-..} for ref do if [ "$ref" = "$active_branch" ] then update_wc $ref fi done fi 

कई झूठी शुरूआत और मृत समाप्त होने के बाद, मैं आखिर में इस आलेख के लिए "git push remote " धन्यवाद के साथ वेबसाइट कोड को लागू करने में सक्षम हूं।

लेखक की पोस्ट-अपडेट स्क्रिप्ट केवल एक पंक्ति लंबी है और उसके समाधान की आवश्यकता नहीं है। गेट रेपो को छिपाने के लिए कुछ अन्यों के रूप में।

यदि आप इसे एक अमेज़ॅन EC2 आवृत्ति पर तैनात कर रहे हैं, तो कुछ अवरोधक ब्लॉक;

1) यदि आप सूडो का उपयोग बेजोड़ भंडार बनाने के लिए करते हैं, तो आपको रेपो के मालिक को ईसी 2-यूजर को बदलना होगा या पुश विफल हो जाएगा। ("क्रोन ईसी 2-उपयोगकर्ता: ec2-user repo " की कोशिश करें।)

2) पुश विफल हो जाएगा यदि आप अपने अमेज़न-निजी-कुंजी .pem का स्थान पूर्व-कॉन्फ़िगर नहीं करते हैं, या तो / etc / ssh / ssh_config में एक IdentityFile पैरामीटर के रूप में या ~ / .ssh / config का उपयोग करके "[ होस्ट] – होस्टनाम – पहचानफ़ाइल – उपयोगकर्ता "लेआउट यहाँ वर्णित है …

… यदि होस्ट ~ / .ssh / config में कॉन्फ़िगर किया गया है और होस्टनाम से अलग है तो गिट धक्का असफल हो जायेगा। (यह शायद एक गिट बग है)

एक सर्वर पर git स्थापित न करें या .git फ़ोल्डर की प्रतिलिपि बनाएँ। जीआईटी क्लोन से एक सर्वर को अपडेट करने के लिए आप निम्न कमांड का उपयोग कर सकते हैं:

 git ls-files -z | rsync --files-from - --copy-links -av0 . user@server.com:/var/www/project 

आपको उन फ़ाइलों को हटाना पड़ सकता है जो परियोजना से हटा दिए गए थे

यह सभी चेक इन फाइलों की कॉपी करता है rsync ssh का उपयोग करता है जो सर्वर पर वैसे भी स्थापित है।

कम सॉफ़्टवेयर जो आपने किसी सर्वर पर स्थापित किया है वह अधिक सुरक्षित है और वह इसे कॉन्फ़िगरेशन प्रबंधित करने और उसे दस्तावेज़ बनाने में आसान है। सर्वर पर एक पूर्ण git क्लोन रखने की भी कोई आवश्यकता नहीं है यह केवल सब कुछ ठीक से सुरक्षित करने के लिए इसे और अधिक जटिल बनाता है

संक्षेप में आपको ये करने की ज़रूरत है:

 server = $1 branch = $2 git push $server $branch ssh <username>@$server "cd /path/to/www; git pull" 

मेरे आवेदन में उन लाइनें हैं जिन्हें निष्पादन योग्य कहा जाता है।

इसलिए जब मैं एक तैनाती करना चाहता हूं I प्रकार। ./deploy myserver mybranch

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

get.denyCurrentBranch अद्यतन इसके अलावा Git 2.3 में जोड़ा एक संभावना है।

इसे सर्वर रिपॉजिटरी पर सेट करें, और यह काम के पेड़ को भी अपडेट करता है अगर यह साफ हो।

push-to-checkout हुक के साथ 2.4 में और push-to-checkout शाखाओं के प्रबंधन में और सुधार हुए हैं ।

नमूना उपयोग:

 git init server cd server touch a git add . git commit -m 0 git config --local receive.denyCurrentBranch updateInstead cd .. git clone server local cd local touch b git add . git commit -m 1 git push origin master:master cd ../server ls 

आउटपुट:

 a b 

GitHub घोषणा पर इसका उल्लेख निम्न कमियों में किया गया है :

  • आपके सर्वर में एक .git निर्देशिका होगी जिसमें आपकी परियोजना का पूरा इतिहास होगा। आप संभवत: अतिरिक्त सुनिश्चित करना चाहते हैं कि यह उपयोगकर्ताओं को सेवा नहीं दी जा सकती!
  • तैनाती के दौरान, उपयोगकर्ताओं के लिए कुछ समय के लिए असंगत स्थिति में साइट का सामना करना पड़ सकता है, पुराने संस्करण में कुछ फ़ाइलें और अन्य नए संस्करण, या यहां तक ​​कि आधे लिखे फाइलें भी होनी चाहिए। यदि यह आपकी प्रोजेक्ट के लिए एक समस्या है, तो पुश-टू-तैनाती संभवतः आपके लिए नहीं है
  • यदि आपके प्रोजेक्ट को "बिल्ड" चरण की आवश्यकता है, तो आपको इसे स्पष्ट रूप से सेट करना होगा, शायद गिटूक के माध्यम से

लेकिन उन सभी बिंदुओं को गिट के दायरे से बाहर रखा गया है और इन्हें बाहरी कोड द्वारा ध्यान रखा जाना चाहिए। तो इस मायने में, यह, गिट हुक के साथ, अंतिम समाधान है।

अद्यतन: मैं अब लॉयड मूर समाधान का इस्तेमाल प्रमुख एजेंट ssh -A ... साथ कर रहा हूं ssh -A ... मुख्य रेपो में धकेलना और फिर अपने सभी मशीनों से समानांतर में खींचकर थोड़ा तेज हो और उन मशीनों पर कम सेटअप की आवश्यकता होती है।


इस समाधान को यहाँ नहीं देख रहा है सर्वर पर जीआईटी स्थापित होने पर बस एसएसएच के माध्यम से पुश करें

आपको अपने स्थानीय .git / config में निम्न प्रविष्टि की आवश्यकता होगी

 [remote "amazon"] url = amazon:/path/to/project.git fetch = +refs/heads/*:refs/remotes/amazon/* 

लेकिन हे, amazon: साथ क्या है? आपके स्थानीय ~ / .ssh / config में आपको निम्न प्रविष्टि जोड़नी होगी:

 Host amazon Hostname <YOUR_IP> User <USER> IdentityFile ~/.ssh/amazon-private-key 

अब आप कॉल कर सकते हैं

 git push amazon master ssh <USER>@<YOUR_IP> 'cd /path/to/project && git pull' 

(बीटीडब्लू: / पाथ / टू / प्रॉजेक्ट.git वास्तविक वर्किंग डायरेक्टरी / पथ / टू / प्रोजेक्ट से भिन्न है)

हम तैनात प्रबंधन के लिए capistrano का उपयोग करें। हम एक स्टेजींग सर्वर पर तैनात करने के लिए कैसिस्ट्रैन का निर्माण करते हैं, और फिर हमारे सभी सर्वरों के साथ एक आरएसआईएनसी चलाना।

 cap deploy cap deploy:start_rsync (when the staging is ok) 

Capistrano के साथ, हम बग के मामले में आसान रोलबैक कर सकते हैं

 cap deploy:rollback cap deploy:start_rsync 

तैनाती परिदृश्य के लिए

हमारे परिदृश्य में हम गिटब / बिटबकेट पर कोड को संचित कर रहे हैं और लाइव सर्वर पर तैनात करना चाहते हैं। इस मामले में निम्नलिखित संयोजन हमारे लिए काम करता है (यह बेहद अपवर्जित उत्तर का रीमिक्स है) :

  1. अपने .git निर्देशिका पर अपने वेब सर्वर पर कॉपी करें
  2. अपने स्थानीय प्रतिलिपि में git remote add live ssh://user@host:port/folder
  3. रिमोट पर: git config receive.denyCurrentBranch ignore
  4. रिमोट पर: nano .git/hooks/post-receive और इस सामग्री को जोड़ें:

    #!/bin/sh GIT_WORK_TREE=/var/www/vhosts/example.org git checkout -f

  5. रिमोट पर: chmod +x .git/hooks/post-receive

  6. अब आप वहां git push live साथ धक्का कर सकते git push live

टिप्पणियाँ

  • यह समाधान पुराने जीआईटी संस्करणों (1.7 और 1.9 के साथ परीक्षण) के साथ काम करता है
  • आपको यह सुनिश्चित करने की ज़रूरत है कि पहले गिटूब / बिटबाकेट पर दबाव डाला जाए, तो आपके पास लाइव पर लगातार रिपो होगा
  • यदि आपका .git फ़ोल्डर दस्तावेज़ रूट के अंदर है तो सुनिश्चित करें कि आप .htaccess ( स्रोत ) में जोड़कर इसे बाहर से .htaccess :

    RedirectMatch 404 /\..*$

Giddyup जीआईटी धक्का के माध्यम से तैनाती को स्वचालित करने के लिए भाषा-अज्ञेयवादी बस-ऐड-वॉटर गिट हुक है। यह आपको वेब सर्वर को पुनरारंभ करने, कैश आदि को गर्म करने के लिए कस्टम स्टार्ट / स्टॉप हुक रखने की सुविधा भी देता है।

https://github.com/mpalmer/giddyup

उदाहरण देखें

लगता है जैसे आपके सर्वर पर दो प्रतियां होनी चाहिए एक नंगे प्रतिलिपि, जिसे आप पुश कर सकते हैं / खींच सकते हैं, जो आपके द्वारा किए गए परिवर्तनों को आपके ऊपर धकेलते हैं, और फिर आप इसे वेब निर्देशिका में क्लोन करेंगे और हर दिन या अपने वेब निर्देशिका से जीआईटी खींचने के लिए एक क्रोन -job की स्थापना करेंगे या इसलिए।

आप संभवत: एक गिट हुक सेट अप कर सकते हैं जब "स्थिर" शाखा को कहने के लिए एक प्रतिबद्ध कहा जाता है तो वह परिवर्तन को खींच देगा और उन्हें PHP साइट पर लागू करेगा। बड़ा नकारात्मक पहलू यह है कि अगर कुछ गलत हो जाता है तो आपके पास ज्यादा नियंत्रण नहीं होगा और यह आपके परीक्षण के लिए समय जोड़ देगा – लेकिन आप एक विचार प्राप्त कर सकते हैं कि जब आप मर्ज करेंगे तो आप अपने ट्रंक शाखा को स्थिर शाखा में जानते हैं कितने संघर्ष आप में चला सकते हैं किसी भी फाइल पर नज़र रखना महत्वपूर्ण होगा, जो साइट विशिष्ट (जैसे कॉन्फ़िगरेशन फ़ाइलें) हैं, जब तक आप केवल एक ही साइट को चलाने का इरादा नहीं करते हैं

वैकल्पिक रूप से क्या आप उस जगह पर बदलाव को आगे बढ़ाने में देखते हैं?

गिट हुक के बारे में जानकारी के लिए गिटूक्स दस्तावेज़ीकरण देखें।

मेरी ईसाई समाधान पर ले लो

 git archive --prefix=deploy/ master | tar -x -C $TMPDIR | rsync $TMPDIR/deploy/ --copy-links -av username@server.com:/home/user/my_app && rm -rf $TMPDIR/deploy 
  • अभिलेख को मास्टर शाखा टार में
  • सिस्टम अस्थायी फ़ोल्डर में तैनात डायर में टार संग्रह निष्कर्षण।
  • rsync सर्वर में बदलाव
  • अस्थायी फ़ोल्डर से हटाएं हटाएं

मैं toroid.org द्वारा निम्न समाधान का उपयोग कर रहा हूं , जिसमें एक सरल हुक स्क्रिप्ट है

सर्वर पर:

 $ mkdir website.git && cd website.git $ git init --bare Initialized empty Git repository in /home/ams/website.git/ 

और सर्वर पर हुक स्थापित करें:

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

अपने ग्राहक पर:

 $ mkdir website && cd website $ git init Initialized empty Git repository in /home/ams/website/.git/ $ echo 'Hello, world!' > index.html $ git add index.html $ git commit -q -m "The humble beginnings of my web site." $ git remote add web ssh://server.example.org/home/ams/website.git $ git push web +master:refs/heads/master 

तो प्रकाशित करने के लिए, बस टाइप करें

 $ git push web 

वेबसाइट पर एक पूर्ण विवरण है: http://toroid.org/ams/git-website-howto

पूरक जवाब के रूप में मैं एक विकल्प की पेशकश करना चाहता हूं। मैं git-ftp का उपयोग कर रहा हूँ और यह ठीक काम करता है।

https://github.com/git-ftp/git-ftp

उपयोग करने में आसान, केवल प्रकार:

 git ftp push 

और git स्वचालित रूप से परियोजना फ़ाइलों को अपलोड करेगा

सादर

एक ऐसे पर्यावरण को देखते हुए जहां आपके पास एक से अधिक डेवलपर्स हैं जो उसी रिपॉजिटरी तक पहुंचते हैं, निम्न दिशानिर्देशों की सहायता कर सकते हैं।

सुनिश्चित करें कि आपके पास एक यूनिक्स समूह है जो कि सभी देवता उस समूह के .git रिपॉजिटरी के स्वामित्व से संबंधित हैं।

  1. सर्वर रिपॉजिटरी के .git / config में sharerepository = true सेट करें। (यह कई प्रयोक्ताओं को अनुमति देने के लिए git को बताता है जो कि प्रतिबद्धता और तैनाती के लिए आवश्यक है

  2. प्रत्येक यूजर को अपनी बाश्र फाइलों में समान बनाते हैं – 002 एक अच्छी शुरुआत है

मुझे अपना मूल तैनाती उपकरण बनाते हुए समाप्त हो गया था जो स्वतः रेपो से नए अपडेट को निकाल देगा – https://github.com/jesalg/SlimJim – असल में यह गिटब पोस्ट प्राप्त हुक को सुनता है और ट्रिगर करने के लिए एक प्रॉक्सी का उपयोग करता है स्क्रिप्ट को अपडेट करें

मैं पोस्ट प्राप्त हुक के लिए दो समाधानों का उपयोग करता हूं:

डिपोली समाधान 1

 #!/bin/bash # /git-repo/hooks/post-receive - file content on server (chmod as 755 to be executed) # DEPLOY SOLUTION 1 export GIT_DIR=/git/repo-bare.git export GIT_BRANCH1=master export GIT_TARGET1=/var/www/html export GIT_BRANCH2=dev export GIT_TARGET2=/var/www/dev echo "GIT DIR: $GIT_DIR/" echo "GIT TARGET1: $GIT_TARGET1/" echo "GIT BRANCH1: $GIT_BRANCH1/" echo "GIT TARGET2: $GIT_TARGET2/" echo "GIT BRANCH2: $GIT_BRANCH2/" echo "" cd $GIT_DIR/ while read oldrev newrev refname do branch=$(git rev-parse --abbrev-ref $refname) BRANCH_REGEX='^${GIT_BRANCH1}.*$' if [[ $branch =~ $BRANCH_REGEX ]] ; then export GIT_WORK_TREE=$GIT_TARGET1/. echo "Checking out branch: $branch"; echo "Checking out to workdir: $GIT_WORK_TREE"; git checkout -f $branch fi BRANCH_REGEX='^${GIT_BRANCH2}.*$' if [[ $branch =~ $BRANCH_REGEX ]] ; then export GIT_WORK_TREE=$GIT_TARGET2/. echo "Checking out branch: $branch"; echo "Checking out to workdir: $GIT_WORK_TREE"; git checkout -f $branch fi done 

दोपहर समाधान 2

 #!/bin/bash # /git-repo/hooks/post-receive - file content on server (chmod as 755 to be executed) # DEPLOY SOLUTION 2 export GIT_DIR=/git/repo-bare.git export GIT_BRANCH1=master export GIT_TARGET1=/var/www/html export GIT_BRANCH2=dev export GIT_TARGET2=/var/www/dev export GIT_TEMP_DIR1=/tmp/deploy1 export GIT_TEMP_DIR2=/tmp/deploy2 echo "GIT DIR: $GIT_DIR/" echo "GIT TARGET1: $GIT_TARGET1/" echo "GIT BRANCH1: $GIT_BRANCH1/" echo "GIT TARGET2: $GIT_TARGET2/" echo "GIT BRANCH2: $GIT_BRANCH2/" echo "GIT TEMP DIR1: $GIT_TEMP_DIR1/" echo "GIT TEMP DIR2: $GIT_TEMP_DIR2/" echo "" cd $GIT_DIR/ while read oldrev newrev refname do branch=$(git rev-parse --abbrev-ref $refname) BRANCH_REGEX='^${GIT_BRANCH1}.*$' if [[ $branch =~ $BRANCH_REGEX ]] ; then export GIT_WORK_TREE=$GIT_TARGET1/. echo "Checking out branch: $branch"; echo "Checking out to workdir: $GIT_WORK_TREE"; # DEPLOY SOLUTION 2: cd $GIT_DIR/; mkdir -p $GIT_TEMP_DIR1; export GIT_WORK_TREE=$GIT_TEMP_DIR1/. git checkout -f $branch export GIT_WORK_TREE=$GIT_TARGET1/. rsync $GIT_TEMP_DIR1/. -v -q --delete --delete-after -av $GIT_TARGET1/. rm -rf $GIT_TEMP_DIR1 fi BRANCH_REGEX='^${GIT_BRANCH2}.*$' if [[ $branch =~ $BRANCH_REGEX ]] ; then export GIT_WORK_TREE=$GIT_TARGET2/. echo "Checking out branch: $branch"; echo "Checking out to workdir: $GIT_WORK_TREE"; # DEPLOY SOLUTION 2: cd $GIT_DIR/; mkdir -p $GIT_TEMP_DIR2; export GIT_WORK_TREE=$GIT_TEMP_DIR2/. git checkout -f $branch export GIT_WORK_TREE=$GIT_TARGET2/. rsync $GIT_TEMP_DIR2/. -v -q --delete --delete-after -av $GIT_TARGET2/. rm -rf $GIT_TEMP_DIR2 fi done 

दोनों समाधान इस धागे में उपलब्ध पहले के समाधानों पर आधारित होते हैं।

नोट, BRANCH_REGEX = '^ $ {GIT_BRANCH1} $ 'शाखाओं के लिए फ़िल्टर "मास्टर " या "देव *" स्ट्रिंग से मेल खाती है, और वर्क ट्री को तैनात करता है, अगर धकेल दिया शाखा मेल खाता है यह विभिन्न स्थानों पर एक देव संस्करण और मास्टर वर्जन को तैनात करना संभव बनाता है।

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

डिपो सोल्यूशन 2 का फायदा है, यह उत्पादन निर्देशिका से किसी भी नई फाइल को निकाल देगा, जो कि सर्वर के पक्ष में जोड़ा गया था, भले ही यह रेपो में जोड़ा गया हो या नहीं। यह हमेशा रिपो के साफ धोखा होगा यह तैनाती समाधान 1 की तुलना में धीमी है

आप रोल-आउट सॉस सॉफ़्टवेयर का प्रयास कर सकते हैं जो सिर्फ तैनाती से अधिक नहीं है आपको एक महीने का नि: शुल्क परीक्षण मिलता है, कोई क्रेडिट कार्ड आवश्यक नहीं है