Git Bash: यह क्या है और Windows पर कैसे इस्तेमाल करें
Git Bash एक Windows टर्मिनल है जो Git for Windows के साथ इंस्टॉल होता है और bash शेल, ls, cd, cat, grep, ssh जैसी Unix कमांड तथा Git देता है। इससे Git की कमांड और दस्तावेज़ों के निर्देश Windows पर वैसे ही चलते हैं जैसे Linux और macOS पर।
Git Bash क्या है
Git Bash एक Windows ऐप है जो Git for Windows के साथ इंस्टॉल होता है और bash शेल वाला टर्मिनल खोलता है। इसके भीतर Git और मानक Unix यूटिलिटी चलती हैं: ls, cd, pwd, cat, grep, find, less, ssh, ssh-keygen, curl और अन्य।
तकनीकी रूप से यह MSYS2 वातावरण का पोर्ट है: प्रोग्राम Windows के लिए कंपाइल होते हैं, पर व्यवहार Linux जैसा करते हैं। टर्मिनल विंडो डिफ़ॉल्ट रूप से MinTTY एमुलेटर है। यह वर्चुअल मशीन या पूरा Linux नहीं है; उसके लिए WSL है। Git Bash हल्का है: तुरंत खुलता है और Windows की फ़ाइलों पर सीधे काम करता है।
खोज में इसे कभी "git bush" या "गिट बैश" भी लिखा जाता है, पर मतलब एक ही है। Bash का अर्थ है Bourne Again SHell, इसका झाड़ी (bush) से कोई संबंध नहीं।
cmd और PowerShell होते हुए Git Bash क्यों
Git PowerShell और सामान्य कमांड लाइन में भी ठीक चलता है। पर Git Bash के व्यावहारिक फ़ायदे हैं, ख़ासकर शुरुआती लोगों के लिए।
- सभी सिस्टम पर एक जैसी कमांड। Git का दस्तावेज़, फ़ोरम के जवाब, GitHub के निर्देश और कोर्स bash की कमांड लिखते हैं। Git Bash में वे बिना बदलाव चलती हैं:
rm -rf build,cat ~/.ssh/id_ed25519.pub,export VAR=value। - SSH के लिए तैयार टूल।
ssh-keygen,ssh-agent,ssh-addपहले से मौजूद हैं, इसलिए GitHub की कुंजी एक मिनट में बन जाती है। - प्रॉम्प्ट में Git की जानकारी। Git Bash इनपुट लाइन में मौजूदा ब्रांच दिखाता है, जैसे
(main), और merge के दौरान(main|MERGING)। - ऑटो-कम्पलीशन। Tab से Git कमांड, ब्रांच और फ़ाइल नाम पूरे होते हैं।
- भविष्य का कौशल। सर्वर, Docker कंटेनर और CI Linux पर चलते हैं। Git Bash में bash सीखने के बाद सर्वर पर आप सहज महसूस करेंगे।
Git Bash, Git CMD और PowerShell में अंतर
Git for Windows इंस्टॉल करने के बाद स्टार्ट मेनू में कई विकल्प दिखते हैं, और यह उलझन पैदा कर सकता है।
| टूल | यह क्या है | कब इस्तेमाल करें |
|---|---|---|
| Git Bash | Unix यूटिलिटी और Git वाला bash शेल | Git पर मुख्य काम, इंटरनेट के निर्देशों का पालन |
| Git CMD | PATH में Git वाली सामान्य Windows कमांड लाइन (cmd.exe) | अगर आप cmd के आदी हैं और केवल git कमांड चाहिए |
| Git GUI | Tcl/Tk पर बना सरल ग्राफ़िकल क्लाइंट | कमिट को दृश्य रूप से बनाना; कम इस्तेमाल होता है |
| PowerShell / cmd | Windows के मानक टर्मिनल | Git चलता है, अगर इंस्टॉल के समय PATH "from the command line and also from 3rd-party software" चुना गया हो |
Git CMD कोई अलग प्रोग्राम नहीं, बल्कि सामान्य cmd है जिसका वातावरण Git के लिए सेट है। उसमें Git की कमांड वही हैं, पर ls, cat और grep नहीं चलते; उनकी जगह dir, type और findstr हैं। "cmd git" खोजने वाले आम तौर पर यही पूछते हैं कि सामान्य कमांड लाइन से git कैसे चलाएँ। जवाब है: कुछ ख़ास नहीं, बस Git PATH में हो तो git status चलाएँ।
Git Bash कैसे खोलें
स्टार्ट मेनू से
"Git Bash" टाइप करके ऐप चलाएँ। टर्मिनल उपयोगकर्ता के होम फ़ोल्डर में खुलेगा: /c/Users/नाम, जिसे bash में ~ लिखा जाता है।
सही फ़ोल्डर में, राइट-क्लिक मेनू से
सबसे सुविधाजनक तरीका: एक्सप्लोरर में प्रोजेक्ट फ़ोल्डर के अंदर खाली जगह पर राइट-क्लिक करें और "Open Git Bash here" चुनें। Windows 11 में यह विकल्प "अधिक विकल्प दिखाएँ" के अंदर छिपा होता है (या Shift + राइट-क्लिक)।
VS Code के टर्मिनल में
टर्मिनल खोलें (Ctrl + `), "+" के बगल का तीर दबाएँ और Git Bash चुनें। डिफ़ॉल्ट बनाने के लिए "Terminal: Select Default Profile" कमांड चलाएँ और Git Bash चुनें।
Windows Terminal में
Git for Windows इंस्टॉलर में विकल्प हो तो वह Windows Terminal में Git Bash प्रोफ़ाइल जोड़ देता है। प्रोफ़ाइल न हो तो नई बनाएँ, कमांड: C:\Program Files\Git\bin\bash.exe -i -l।
पथ और फ़ाइलें: Windows से मुख्य अंतर
Git Bash में पथ Unix शैली में लिखे जाते हैं। ड्राइव C: /c बनती है, और बैकस्लैश की जगह फ़ॉरवर्ड स्लैश।
| Windows | Git Bash |
|---|---|
C:\Users\Anna\projects | /c/Users/Anna/projects |
D:\work | /d/work |
%USERPROFILE% | ~ या $HOME |
पथ में स्पेस हो तो उसे कोट करें: cd "/c/Users/Anna/My Projects"। मौजूदा फ़ोल्डर एक्सप्लोरर में खोलने के लिए explorer ., और VS Code में code . चलाएँ।
शुरुआती के लिए Git Bash की बुनियादी कमांड
नेविगेशन और फ़ाइलें
pwd # मैं कहाँ हूँ
ls -la # सभी फ़ाइलें, छिपी हुई भी (.git, .gitignore)
cd projects/site # फ़ोल्डर में जाएँ
cd .. # एक स्तर ऊपर
mkdir new-app # फ़ोल्डर बनाएँ
touch index.html # खाली फ़ाइल बनाएँ
cat README.md # सामग्री दिखाएँ
rm file.txt # फ़ाइल हटाएँ
rm -r old-folder # फ़ोल्डर और उसकी सामग्री हटाएँ
clear # स्क्रीन साफ़ करें
Git Bash में पहली रिपॉज़िटरी
$ mkdir my-first-repo && cd my-first-repo
$ git init
Initialized empty Git repository in C:/Users/Anna/my-first-repo/.git/
$ echo "Hello, Git" > hello.txt
$ git add hello.txt
$ git commit -m "hello.txt जोड़ें"
$ git log --oneline
git init के बाद प्रॉम्प्ट बदल जाता है: कोष्ठक में ब्रांच का नाम आ जाता है। यह जल्दी जानने का तरीका है कि आप रिपॉज़िटरी के भीतर हैं।
उपयोगी तरकीबें
- Tab — कमांड, ब्रांच और फ़ाइलें पूरी करता है। विकल्प देखने के लिए दो बार दबाएँ।
- ऊपर का तीर — पिछली कमांड;
history— पूरा इतिहास; Ctrl + R — इतिहास में खोज। - कॉपी/पेस्ट — MinTTY में माउस से चुना हुआ टेक्स्ट तुरंत कॉपी होता है, पेस्ट के लिए Shift + Insert या राइट-क्लिक। टर्मिनल में Ctrl + C कमांड रोकता है, कॉपी नहीं करता।
- q — पेज-दर-पेज व्यू से बाहर (
git log,git difflessमें खुलते हैं)। - Esc, फिर :q! और Enter — अगर कमिट संदेश के लिए Vim खुला हो तो उससे बाहर।
Git CLI: कमांड लाइन क्यों सीखें
Git CLI, यानी git ... कमांड वाला इंटरफ़ेस। ग्राफ़िकल क्लाइंट इतिहास देखने के लिए सुविधाजनक हैं, पर उनकी सीमाएँ हैं: सभी ऑपरेशन उपलब्ध नहीं होते, और त्रुटि होने पर बटन यह नहीं बताता कि क्या हो रहा है। कमांड लाइन पूरा नियंत्रण और विस्तृत संदेश देती है।
एक और कारण: इंटरव्यू में या किसी और की टीम में आपसे पूछा जाएगा कि कमिट कैसे रद्द करते हैं या कॉन्फ़्लिक्ट कैसे सुलझाते हैं, और हर किसी का GUI अलग है। कमांड हर जगह एक जैसी हैं। अच्छी रणनीति है CLI में काम करना, और diff व इतिहास देखने के लिए GUI या IDE के टूल इस्तेमाल करना।
Git Bash को अपने हिसाब से सेट करना
~/.bashrc में alias
Git Bash शुरू होते समय ~/.bash_profile और ~/.bashrc पढ़ता है। वहाँ छोटे नाम जोड़ें:
alias gs='git status'
alias gl='git log --oneline --graph --all'
alias ll='ls -la'
बिना टर्मिनल दोबारा खोले बदलाव लागू करने के लिए source ~/.bashrc चलाएँ। अगर चेतावनी आए कि .bashrc मिला है पर .bash_profile नहीं, तो Git Bash खुद .bash_profile बना देता है; यह सामान्य है।
Git के अपने alias
Alias Git में भी रखे जा सकते हैं; तब वे किसी भी टर्मिनल में काम करते हैं:
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
अब git st और git lg Git Bash और PowerShell दोनों में चलते हैं।
रूप-रंग
फ़ॉन्ट, आकार, रंग और पारदर्शिता विंडो के शीर्षक पर राइट-क्लिक → Options से बदलें। भाषा के लिए Text सेक्शन में UTF-8 एन्कोडिंग चुनी हो, यह जाँचें।
Git Bash की आम समस्याएँ
git log में अक्षरों की जगह अजीब चिह्न
आम तौर पर Options → Text में UTF-8 सेट करना और ~/.bashrc में export LANG=ru_RU.UTF-8 जैसी पंक्ति जोड़ना मदद करता है (अपनी भाषा के अनुसार लोकेल लिखें)। गैर-ASCII फ़ाइल नामों के लिए git config --global core.quotepath false चलाएँ; वरना git status में वे \320\277 जैसे एस्केप्ड रूप में दिखते हैं।
इंटरैक्टिव प्रोग्राम अटक जाते हैं
कुछ कंसोल प्रोग्राम (जैसे बिना आर्गुमेंट के Python या node) MinTTY में अजीब व्यवहार करते हैं। उन्हें winpty से चलाएँ: winpty python, या Windows Terminal के अंदर Git Bash इस्तेमाल करें।
पथ अजीब रूप ले लेते हैं
MSYS Unix जैसे दिखने वाले आर्गुमेंट को Windows पथ में बदल देता है। कभी-कभी यह रुकावट बनता है, जैसे docker run को /app देते समय। समाधान: स्लैश दोगुना करें (//app) या कमांड के लिए MSYS_NO_PATHCONV=1 सेट करें।
push पर "Permission denied (publickey)"
SSH कुंजी नहीं बनी या GitHub पर नहीं जोड़ी गई। Git Bash में ssh-keygen -t ed25519 -C "you@example.com" से कुंजी बनाएँ, ~/.ssh/id_ed25519.pub की सामग्री GitHub सेटिंग्स में जोड़ें और ssh -T git@github.com से जाँचें।
Git Bash या WSL
WSL Windows के भीतर असली Linux है, जिसकी अपनी फ़ाइल प्रणाली और पैकेज हैं। यह तब चाहिए जब आप Linux के लिए विकसित करते हैं: Docker चलाते हैं, कंपाइल करते हैं, सर्वर वाला स्टैक इस्तेमाल करते हैं। Git Bash सरल और हल्का है, और Git के काम के लिए पूरी तरह पर्याप्त है। एक बात ध्यान रखें: WSL के भीतर क्लोन की गई रिपॉज़िटरी को WSL के Git से संभालना बेहतर है, और C: ड्राइव की रिपॉज़िटरी को Git for Windows से।
सारांश
Git Bash bash और Unix यूटिलिटी वाला टर्मिनल है, जो Git for Windows के साथ आता है। यह Windows को Git के दस्तावेज़ों और निर्देशों के अनुकूल बनाता है, तैयार SSH देता है और प्रॉम्प्ट में ब्रांच दिखाता है। Git CMD वही Git है, पर सामान्य कमांड लाइन में, बिना Unix कमांड के। सीखने और रोज़ के काम के लिए Windows पर Git Bash चुनें; Git कोर्स में यह व्यावहारिक कक्षाओं का मुख्य टर्मिनल है।
अक्सर पूछे जाने वाले प्रश्न
क्या Git Bash मुफ़्त है?
हाँ, Git Bash Git for Windows का हिस्सा है और खुले लाइसेंस के तहत मुफ़्त मिलता है।
क्या Git के बिना Git Bash अलग से इंस्टॉल हो सकता है?
नहीं, Git Bash केवल Git for Windows के साथ आता है। Git इंस्टॉल हो तो वह स्टार्ट मेनू में मिल जाएगा।
क्या macOS और Linux पर भी Git Bash है?
अलग प्रोग्राम की ज़रूरत नहीं: macOS और Linux के अंतर्निहित टर्मिनल पहले से bash या zsh और Unix यूटिलिटी के साथ काम करते हैं।
Git Bash अपनी होम फ़ोल्डर और सेटिंग्स कहाँ रखता है?
होम फ़ोल्डर C:\Users\नाम है, जो bash में ~ से मिलता है। वहीं .bashrc, .bash_profile, .gitconfig और .ssh फ़ोल्डर रहते हैं।
क्या Git Bash में bat और exe फ़ाइलें चल सकती हैं?
हाँ, Windows प्रोग्राम नाम या पथ से चलते हैं, जैसे ./build.bat या notepad file.txt।
यह विषय “गिट: शुरुआत से आत्मविश्वासी डेवलपर तक” कोर्स में अभ्यास के साथ विस्तार से समझाया गया है।
कोर्स पर जाएँ