Git Deployment Workflows
In this page:
git push remote_name branch_name
rsync -avz -e ssh ./build_dir/ user@server:/path/to/app/
एक Deployment Workflow क्या है?
एक deployment workflow वह automated pipeline है जो आपकी repository से एक commit को पूरी तरह एक चल रहे production server तक ले जाता है, manual file copying या commands चलाने को एक repeatable, auditable process से replace करते हुए।
उदाहरण: What is a Deployment Workflow?
git push origin main
# triggers automated build and deploy
SSH के through Deploy करना
SSH पर deploy करने का मतलब है कि आपका CI job एक private key से authenticate होता है, आपके server से connect होता है, और updated files सीधे copy करता है (अक्सर rsync या scp के through) — एक straightforward option जब आप खुद server control करते हों और आपको एक managed platform का extra tooling न चाहिए।
उदाहरण: Deploying via SSH
rsync -avz -e ssh ./dist/ user@server:/var/www/app/
Cloud Providers पर Deploy करना
Vercel, Netlify, या AWS Amplify जैसे platforms सीधे आपकी GitHub repository से connect होते हैं और एक चुनी हुई branch पर हर push पर automatically redeploy करते हैं, build, hosting, और rollback machinery आपके लिए handle करते हुए — कोई custom deploy script नहीं चाहिए।
उदाहरण: Deploying to Cloud Providers
git push origin main
# Vercel/Netlify auto-deploys on push
Environment-Specific Branches
Branches को environments से map करना — dev एक sandbox में deploy करती है, staging एक pre-production copy में, main live site पर — का मतलब है कि किसी branch में merge करना खुद deploy trigger है, और कोई गलत जगह merge करके गलती से unfinished काम ship नहीं कर सकता।
उदाहरण: Environment-Specific Branches
git checkout -b staging
git push origin staging
Deployments को Rollback करना
एक rollback टूटी हुई commit की जगह एक पिछली, known-good commit को फिर से deploy करता है — आमतौर पर history force-push करने के बजाय एक पहले वाले commit hash के against deploy workflow फिर से चलाकर, जो क्या हुआ इसकी real timeline intact रखता है।
उदाहरण: Rolling Back Deployments
git checkout a1b2c3d
# re-deploy this known-good commit
- pipeline के बजाय directly एक local machine से deploy करना, ताकि जो चल रहा है वह
mainसे match न करे। - SSH private key को CI secrets के बजाय repository में store करना।
- किसी भी branch पर हर push पर deploy करना, जबकि सिर्फ
mainया tagged releases को production तक पहुँचना चाहिए।
Chapter Quiz — Complete all 5 topics to unlock
0/5 topics done
Complete these topics first: