वैसे भी विंडोज के लिए Git Bash क्या है?


49

मैं ख़ुशी से Git और Git Bash का उपयोग कर रहा हूं https://git-scm.com/ । अधिक जानकारी के साथ यहां एक पृष्ठ है: https://git-for-windows.github.io/

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

"क्या बात है बैश" में देखने के बारे में मैंने पढ़ा Cygwin और एक विभिन्न कहा जाता है msys2 , जो से संबंधित प्रतीत होता है mysysGit, और मैंने इसका संदर्भ देखा MinGW। लेकिन, फिर मैंने एफएक्यू में देखा कि mintty Git Bash के लिए डिफ़ॉल्ट टर्मिनल है।

ऐसा लगता है कि बैश एप्लिकेशन वास्तव में स्वतंत्र रूप से उपलब्ध अन्य चीजों (ज्यादातर ऊपर सूचीबद्ध) की एक विशेष रूप से घुमावदार बंडल है।

मौलिक रूप से, मैं जानना चाहूंगा कि ऐसा कौन सा आधार है जो * nix कमांड को पसंद करता है ssh scp cat ls विंडोज के लिए गिट बैश में काम?

(मुझे लगता है कि एक अच्छा जवाब किसी को समझने में मदद करेगा, व्यापक स्ट्रोक में, ये घटक एक साथ कैसे फिट होते हैं और घटकों के लिए सही शब्दों को समझते हैं, लेकिन मैं एसओ प्रश्न / उत्तर प्रारूप को तोड़ना नहीं चाहता हूं।)


यहाँ बहुत अच्छा जवाब मिला: Git Bash का सही अर्थ क्या है?
geneorama

मुझे लगता है कि google का आधिकारिक नाम / चीज "git bash" है। इसे उद्धरण में मदद करता है क्योंकि दोनों शब्द स्वतंत्र रूप से सार्थक हैं।
geneorama

रेडिट पर कुछ अच्छी चर्चा यहाँ तथा यहाँ (2017 से) वे मेरे मूल को भी संबोधित करते हैं rsync सवाल!!
geneorama

जवाबों:


56

सारांश

तुम सही हो, विंडोज के लिए गिट बैश बस नहीं है bash विंडोज के लिए संकलित। यह पैकेज है जिसमें शामिल है bash (जो कि है कमांड-लाइन शेल ) और अन्य का एक संग्रह, अलग * निक्स उपयोगिताओं की तरह ssh, scp, cat, find और अन्य (जो आप शेल का उपयोग करके चलाते हैं), विंडोज के लिए संकलित, और एक नया कमांड-लाइन इंटरफ़ेस टर्मिनल विंडो जिसे कहा जाता है mintty

संक्षेप में

विंडोज पर आप जैसे कमांड चला सकते हैं ipconfig /all या format G: का उपयोग करते हुए cmd.exe। इन आदेशों के तहत वास्तविक निष्पादन योग्य फाइलें हैं C:\Windows\system32के रूप में संग्रहीत ipconfig.exe तथा format.com फ़ाइलें। cmd.exe दोनों से अलग है और लोड करता है और उपयोगकर्ता के अनुरोध पर उन्हें चलाता है।

ssh, scp, cat, find का उपयोग करके चलाए जाते हैं bash बिल्कुल उसी तरह से। वे आम तौर पर के तहत संग्रहीत हैं /usr/bin के बजाय में C:\Windows\system32 * nix सिस्टम पर, क्योंकि विंडोज और * nix में उनकी सिस्टम फाइल संरचना अलग तरह से व्यवस्थित होती है।

Windows के लिए Git Bash के मामले में ये प्रोग्राम Git स्थापना फ़ोल्डर में स्थित हैं: C:\Program Files\Git\usr\bin, जो के तहत उत्सर्जित लिनक्स वातावरण में भी पाया जा सकता है /usr/bin

जैसे सिर्फ दौड़ने में सक्षम हो cmd.exe ऑन * निक्स आपको अन्य सिस्टम उपयोगिताओं के बिना बहुत कुछ करने की अनुमति नहीं देता है, बस विंडोज पर बैश को चलाने में सक्षम होना बहुत उपयोगी नहीं है। इसका मतलब है कि इन सभी अतिरिक्त कमांडों को एक उपयोगी सॉफ्टवेयर पैकेज बनाने के लिए बैश के साथ एक साथ बंडल किया जाना है।

विवरण: विंडोज पर POSIX एप्लिकेशन

आम तौर पर वे अतिरिक्त कमांड * nix सिस्टम पर मिलेंगे न कि विंडोज पर, क्योंकि उन्हें POSIX प्रोग्रामिंग एपीआई (जो कि * nix उपयोग करता है) के खिलाफ प्रोग्राम किया गया है, और Win32 APIs (जो कि विंडोज का उपयोग करता है) नहीं। POSIX API प्रलेखन खुले रूप से उपलब्ध है, इसलिए कुछ लोगों ने इसे विंडोज सहित अन्य प्रणालियों में पोर्ट किया है। POSIX API / लाइब्रेरी के विंडोज कार्यान्वयन द्वारा प्रदान किए जाते हैं Cygwin तथा MSYS

यह किस तरह के समान है शराब परियोजना करता है, लेकिन यह POSIX- & gt; को Windows के बजाय Windows- & gt; POSIX जैसे वाइन करता है।

mintty

mintty शामिल है क्योंकि cmd.exeडिफ़ॉल्ट विंडोज कमांड लाइन विंडो, कुछ महत्वपूर्ण विशेषताओं को याद कर रही है जो सामान्य रूप से अधिकांश * निक्स सिस्टम पर उपलब्ध हैं। अधिकतर परिस्थितियों में, mintty कमांड चलाने के लिए एक बेहतर विकल्प है (निश्चित रूप से उपयोगिताओं के लिए जो विंडोज पैकेज के लिए गिट बैश के साथ आते हैं), लेकिन कभी-कभी विंडोज सिस्टम एप्लिकेशन के साथ बेहतर काम हो सकता है cmd.exe


1
यह बताता है कि मेरे अधिकांश सवालों का जवाब परियोजना के अक्सर पूछे जाने वाले प्रश्नों में दिया जाता है: github.com/git-for-windows/git/wiki/FAQ और मुझे Google समूह में और अधिक विशिष्ट जानकारी मिल सकती है groups.google.com/forum/#!forum/git-for-windows
geneorama

अगर यह वास्तव में सही, सूचनात्मक और उपयोगी था, तो इस जवाब को स्वीकार करने के लिए कोई समस्या नहीं होनी चाहिए।
walen

1
@geneorama भरना है कि खाली आपका इरादा हो सकता है, लेकिन यह वह सवाल नहीं था जो आपने बनाया था। आपकी पोस्ट का शीर्षक है "वैसे भी विंडोज के लिए गिट बैश क्या है?" , और इसके शरीर में मौजूद एकमात्र प्रश्न है "मैं यह जानना चाहूंगा कि ऐसा कौन सा आधार है जो * निक्स कमांड जैसा बनाता है ssh scp cat ls विंडोज के लिए गिट बैश में काम? " । पाब्रू की पोस्ट दोनों सवालों का काफी अच्छी तरह से जवाब देती है और किसी के लिए भी एक सही जवाब है जिसमें एक ही सवाल (जैसा कि कहा गया है) हो सकता है, इसलिए यह स्वीकार करके कि आप अन्य उपयोगकर्ताओं की मदद कर रहे हैं। क्या आपने एक नया प्रश्न पोस्ट करने की कोशिश की है? rsync संकट?
walen

2
@ एसओ और संबंधित साइटों पर प्रश्न पोस्ट करना इतना अप्रिय है कि मुझे संदेह है कि मैं कभी भी अधिक प्रश्न पोस्ट करूंगा। यह वास्तव में एक परीक्षा थी, और इसने मेरी भावनाओं की पुष्टि की। प्रश्न को संक्षिप्त रखने और मेरे शोध का दस्तावेजीकरण करने के मेरे प्रयास में (और मैंने पूरा दिन शोध में बिताया), मुझे लगता है कि मैंने वास्तविक प्रश्न छोड़ दिया है। जब मैं ध्यान से संपादित करता हूं तो लोग शोध की कमी के रूप में संक्षिप्तता को लेने लगते हैं। अगर मैं प्रश्न को बहुत अधिक क्रियाशील बनाता हूं तो इसे नजरअंदाज कर दिया जाता है। कोई बात नहीं, सवाल की आलोचना की जाती है (कई नीच कठोर टिप्पणियां हटा दी गई हैं)। यहां तक ​​कि मेरे "प्रसिद्ध" प्रश्न पहले ही भारी पड़ गए थे।
geneorama

1
@geneorama अगर यह आपके लिए किसी भी सांत्वना की है, तो आपके प्रश्न ने मुझे जवाब को पढ़ने से पहले, गिट बैश के बारे में और जानने में मदद की। लेकिन मैं समझता हूं कि आपका क्या मतलब है।
walen

4

पृष्ठभूमि

मैं ओपी हूं। मैं मूल रूप से सिर्फ इस चीज के लिए औपचारिक नाम जानना चाहता था जिसका मैं उपयोग कर रहा था।

अब मुझे लगता है कि नाम "विंडोज़ के लिए गिट बैश" है। दुर्भाग्य से पूरा जवाब जटिल है क्योंकि यह बात वास्तव में बहुत सी चीजें हैं।

2016 का शीर्ष उत्तर मूल रूप से मेरे लिए उपयोगी नहीं था, लेकिन इसे बहुत अधिक संपादित किया गया है और अधिक से अधिक मददगार है। फिर भी, यह मेरे कुछ मूल प्रश्न को याद करता है।

शुरुवात: msysgit

दरअसल, शुरुआत शायद है msys, लेकिन वास्तव में msys2। शब्द "मिस्सिट्ज़" एक अच्छा शब्द है जो एक्सवाईजेड के गलत होने पर पता लगाने के लिए खोज में लगाया जाता है; "जहां # @ # जैसी चीजें हैं! क्या सभी ऑटोकॉल्फ सेटिंग्स संग्रहीत हैं?!?!?"

README ( https://github.com/msysgit/msysgit ) msysgit परियोजना में घटकों के बीच संबंध बताते हैं:

बीच के रिश्ते msysGit तथा विंडोज के लिए गिट

विंडोज के लिए गिट सॉफ्टवेयर पैकेज है जो विंडोज पर गिट चलाने के लिए एक न्यूनतम वातावरण स्थापित करता है। यह एक बैश (एक यूनिक्स-प्रकार का शेल) के साथ आता है, एक पर्ल दुभाषिया के साथ और गिट निष्पादन योग्य और इसकी निर्भरता के साथ।

दूसरी ओर, msysGit सॉफ्टवेयर पैकेज है जिसे स्थापित किया जा रहा है पर्यावरण का निर्माण जो विंडोज के लिए Git का निर्माण कर सकता है। सबसे आसान तरीका यह है कि इसके माध्यम से स्थापित करें नेट इंस्टॉलर

MSys और MinGW के बीच का अंतर

MinGW परियोजना का लक्ष्य GNU C कंपाइलर का उपयोग करके बिना POSIX परत वाले देशी विंडोज बायनेरिज़ को संकलित करने का एक तरीका प्रदान करना है।

हालांकि, कम से कम बैश को एक POSIX परत की आवश्यकता होती है (सबसे विशेष रूप से अनुपस्थिति के कारण fork() विंडोज पर कॉल करें)। इसलिए, MSys (ए न्यूनतम प्रणाली ) में फेंक दिया जाता है, विंडोज पर बैश (और पर्ल) कार्यक्षमता प्रदान करने के लिए आवश्यक न्यूनतम प्रणाली की पेशकश की जाती है।

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

BTW, बस के मामले में पूर्ण README हटा दिया जाता है, मैं एक में नकल की सार

टर्मिनल विंडो: mintty

खिड़कियों के लिए गिट बैश का दूसरा हिस्सा वास्तविक विंडो कमांड लाइन, मिनिटेट है। धन्यवाद अच्छा है कि यह मौजूद है, लेकिन यह ऐसा कुछ नहीं है जिसकी मुझे Google को आवश्यकता है।

MSYS2 के लिए संदर्भ

उनका विकी MSYS2 पर्यावरण पर विवरण का एक वास्तविक खजाना है: https://github.com/msys2/msys2/wiki

परिचय में, यह हिस्सा मेरे मूल प्रश्न के लिए सबसे अधिक प्रासंगिक है:

MSYS2 में तीन उपप्रणालियाँ और उनके संबंधित पैकेज रिपॉजिटरी होते हैं, msys2, mingw32, तथा mingw64

यह चर्चा बहुत उपयोगी है: https://sourceforge.net/p/msys2/discussion/general/thread/dcf8f4d3/#8473/588e


"परिणामस्वरूप, POSIX परत के साथ MSys जहाज ( सिग्विन के एक पुराने संस्करण पर आधारित है ) ... "- इससे मुझे यह निष्कर्ष निकालने में मदद मिली कि Cygwin पर git को स्थापित करना 'Git Bash for Windows' को अनावश्यक बनाता है इसलिए मैं इसे अनइंस्टॉल कर सकता हूं।
Daniel Sokolowski
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.