ความหมายที่แท้จริงของ Git Bash คืออะไร?


94

Git Bash

ฉันทำงานกับ Git Bash ในช่วงสองวันที่ผ่านมา ฉันรู้ว่าตอนการดำเนินงานพื้นฐานเช่นcommit, push, pull, และfetch mergeแต่ผมก็ยังไม่ทราบว่า Git ทุบตีตัวเองเป็นจริง!

ฉันค้นหาเกี่ยวกับ Git Bash มามากแล้ว แต่ไซต์ทั้งหมดที่ฉันเห็นนั้นเน้นที่การทำงานของคำสั่ง ฉันยังไม่พบคำตอบที่ดีสำหรับคำถามของฉัน ตอนนี้ฉันคิดว่าฉันมาถูกที่แล้วที่จะได้รับคำตอบนี้!


4
ผู้คนอาจสนใจคำถามของฉันเกี่ยวกับ SuperUser Git Bash for Windows คืออะไร?
geneorama

ไม่มีสิ่งที่เรียกว่า "Git bash" มี "bash" และมี "git" Bash เป็นตัวแปลบรรทัดคำสั่งแบบโต้ตอบบางครั้งเรียกว่า "sh" หรือ "shell" ด้วยเหตุผลทางประวัติศาสตร์ซึ่งคล้ายคลึงกับ "cmd" ของ Microsoft มีเป็นอย่างไรก็ตาม "คอมไพล์เปลือก" ซึ่งเป็น "ล็อคลง" แปลคำสั่งที่ใช้ในการ จำกัด อำนาจของการเข้าถึงที่ไม่ระบุชื่อไปยังเซิร์ฟเวอร์ของคอมไพล์และเป็นส่วนหนึ่งของการกระจายคอมไพล์ เนื่องจาก git ได้รับการพัฒนาบนและสำหรับ UNIX เช่นระบบจึงควรจับคู่กับ CLI "bash" ได้ดีที่สุดแม้ว่าในทางทฤษฎีแล้วจะไม่เชื่อเรื่องพระเจ้า
Hatebit

คำตอบ:


78

git bash เป็นเชลล์ที่:

  • กระบวนการทำงานคือsh.exe(แพ็กเกจด้วยmsysgitเป็นshare/WinGit/Git Bash.vbs)
  • git เป็นคำสั่งที่รู้จัก
  • $HOME ถูกกำหนด

โปรดดูที่ " แก้ไข msysgit แบบพกพา$HOMEที่ตั้งของ ":

บน Windows 64:

C:\Windows\SysWOW64\cmd.exe /c ""C:\Prog\Git\1.7.1\bin\sh.exe" --login -i"

สิ่งนี้แตกต่างจากgit-cmd.batที่ให้คำสั่ง git ในพรอมต์คำสั่ง DOS ธรรมดา

เครื่องมือเช่นGitHub สำหรับ Windows (G4W)ให้เชลล์ที่แตกต่างกันสำหรับคอมไพล์ (รวมถึง PowerShell ด้วย)


อัปเดตเมษายน 2558 :

หมายเหตุ: git bash ในmsysgit / Git สำหรับ windows 1.9.5เป็นอันเก่า:

GNU bash, version 3.1.20(4)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.

แต่ด้วยการเลิกใช้ msysgit (Q4 2015) และGitใหม่สำหรับ Windows (Q2 2015) ตอนนี้คุณมีGit สำหรับ Windows 2.3.5แล้ว
มีการทุบตีล่าสุดมากขึ้นโดยอิงจากโปรเจ็กต์ 64bits msys2ซึ่งเป็นการเขียนซ้ำของ MSYS แบบอิสระโดยใช้ Cygwin (เลเยอร์ความเข้ากันได้ของ POSIX) และ MinGW-w64 ที่ทันสมัยโดยมีจุดประสงค์เพื่อให้ทำงานร่วมกันได้ดีขึ้นกับซอฟต์แวร์ Windows ดั้งเดิม msys2มาพร้อมกับตัวติดตั้งของตัวเองด้วย

git bash ตอนนี้ (พร้อม Git ใหม่สำหรับ Windows):

GNU bash, version 4.3.33(3)-release (x86_64-pc-msys)
Copyright (C) 2013 Free Software Foundation, Inc.

คำตอบเดิม (มิถุนายน 2013) แม่นยำยิ่งขึ้นจากmsygit wiki :

ในอดีต Git บน Windows ได้รับการสนับสนุนอย่างเป็นทางการโดยใช้ Cygwin เท่านั้น
ที่จะช่วยให้ Windows รุ่นพื้นเมืองโครงการนี้เริ่มต้นขึ้นอยู่กับส้อม MinGW

เพื่อให้ชื่อโครงการ 'ซุป' น้ำนมชัดเจนมากขึ้นเราพูดแบบนี้:

  • msysGit - เป็นชื่อของโครงการนี้ซึ่งเป็นสภาพแวดล้อมการสร้างสำหรับ Git สำหรับ Windows ซึ่งเผยแพร่ไบนารีอย่างเป็นทางการ
  • MinGW - เป็นสภาพแวดล้อมการพัฒนาที่เรียบง่ายสำหรับแอปพลิเคชัน Microsoft Windows ดั้งเดิม
    มันเป็นเลเยอร์เวลาคอมไพล์ที่บางมากใน Microsoft Runtime โปรแกรม MinGW จึงเป็นโปรแกรม Windows ที่แท้จริงโดยไม่มีแนวคิดเกี่ยวกับพา ธ สไตล์ Unix หรือสิ่งเฉพาะของ POSIX เช่นการfork()โทร
  • MSYS - เป็นระบบล่ามบรรทัดคำสั่ง Bourne Shell ถูกใช้โดย MinGW (และอื่น ๆ ) ซึ่งถูกแยกมาจาก Cygwin ในอดีต
  • Cygwin - สภาพแวดล้อมที่เหมือน Linux ซึ่งเคยใช้ในอดีตเพื่อสร้าง Git สำหรับ Windows ปัจจุบันไม่มีความสัมพันธ์กับ msysGit

ดังนั้นคำอธิบายสองบรรทัดของคุณเกี่ยวกับ "git bash" คือ:

" Git bash" เป็นเชลล์ msys ที่รวมอยู่ใน "Git for Windows" และเป็น Cygwin เวอร์ชันที่บางลง (เวอร์ชันเก่า) ซึ่งมีจุดประสงค์เพียงเพื่อให้มีเลเยอร์ POSIX เพียงพอที่จะรัน bash


คำเตือน:

msysGit คือสภาพแวดล้อมการพัฒนาเพื่อรวบรวม Git สำหรับ Windows เสร็จสมบูรณ์ในแง่ที่คุณต้องติดตั้ง msysGit จากนั้นคุณสามารถสร้าง Git ได้ โดยไม่ต้องติดตั้งซอฟต์แวร์ของ บริษัท อื่น

msysGit ไม่ใช่ Git สำหรับ Windows ที่มีการติดตั้งที่ติดตั้ง Git - การและมีเพียง Git

ดูเพิ่มเติมใน " ความแตกต่างระหว่าง msysgit และ Cygwin + git? "


2
ฉันอยากรู้ความหมายแค่นั้น!
DRAJI

@DRAJI คุณหมายความว่าคำตอบของฉันไม่ครอบคลุมสิ่งที่คุณอยากรู้หรือเปล่า?
VonC

@DRAJI มีรายละเอียดเพิ่มเติมที่คุณอยากรู้เกี่ยวกับ " git bash" ไหม
VonC

แน่นอน. แต่ก่อนอื่นฉันต้องการทราบคำอธิบายสองบรรทัดเกี่ยวกับเรื่องนั้นหลังจากนั้นฉันจะดำเนินการขั้นต่อไป
DRAJI

3
เช่น UNIX Bash และ Git Bash ต่างกันอย่างไร
Alexander Mills

22

ผมคิดว่าผู้ถามคำถามคือ (คือ) คิดว่าทุบตีคอมไพล์เป็นคำสั่งเช่นinit คอมไพล์หรือเช็คเอาต์คอมไพล์ Git ทุบตีไม่ได้เป็นคำสั่งมันเป็นอินเตอร์เฟซ ฉันจะถือว่า asker ไม่ใช่ผู้ใช้ linux เพราะ bash เป็นที่นิยมมากในโลก unix / linux ชื่อ "bash" เป็นคำย่อของ " B ourne A gain SH ell" Bash เป็นอินเทอร์เฟซคำสั่งแบบข้อความเท่านั้นที่มีคุณสมบัติที่อนุญาตให้เรียกใช้สคริปต์อัตโนมัติ การเปรียบเทียบที่ดีคือการเปรียบเทียบ bash กับอินเทอร์เฟซPowerShellใหม่ใน Windows7 / 8 ยากจนการเปรียบเทียบ (แต่คนส่วนใหญ่จะเข้าใจได้ง่ายกว่า) คือการรวมกันของพรอมต์คำสั่งและไฟล์คำสั่ง. BAT (แบทช์) จากสมัยของ DOS และ Windows รุ่นแรก ๆ

ข้อมูลอ้างอิง:


10

Bash เป็นอินเทอร์เฟซบรรทัดคำสั่งที่สร้างขึ้นเมื่อยี่สิบเจ็ดปีก่อนโดย Brian Fox เพื่อใช้แทนซอฟต์แวร์ฟรีสำหรับ Bourne Shell เชลล์คืออินเทอร์เฟซบรรทัดคำสั่งเฉพาะ Bash เป็น "โอเพ่นซอร์ส" ซึ่งหมายความว่าทุกคนสามารถอ่านโค้ดและแนะนำการเปลี่ยนแปลงได้ ตั้งแต่เริ่มต้นได้รับการสนับสนุนจากชุมชนวิศวกรจำนวนมากที่ทำงานเพื่อให้เป็นเครื่องมือที่น่าทึ่ง Bash เป็นเชลล์เริ่มต้นสำหรับ Linux และ Mac ด้วยเหตุผลเหล่านี้ Bash จึงเป็นเชลล์ที่มีการใช้งานมากที่สุดและแพร่หลาย

Windows มี Command Line Interface ที่แตกต่างกันเรียกว่า Command Prompt แม้ว่าคุณลักษณะนี้จะมีคุณสมบัติเช่นเดียวกับ Bash แต่ Bash ก็ได้รับความนิยมมากกว่า เนื่องจากความแข็งแกร่งของชุมชนโอเพ่นซอร์สและเครื่องมือที่มีให้การเรียนรู้ Bash จึงเป็นการลงทุนที่ดีกว่าการเรียนรู้พร้อมรับคำสั่ง

ในการใช้ Bash บนคอมพิวเตอร์ Windows เราจำเป็นต้องดาวน์โหลดและติดตั้งโปรแกรมที่เรียกว่า Git Bash Git Bash (Is the Bash สำหรับ windows) ช่วยให้เราสามารถเข้าถึง Bash ได้อย่างง่ายดายเช่นเดียวกับเครื่องมืออื่นที่เรียกว่า Git ภายในสภาพแวดล้อม Windows


1
นอกจากนี้ CLI ปัจจุบันสำหรับ Windows คือ PowerShell CMD เชลล์ที่ใช้ DOS แบบโบราณยังคงมีความเข้ากันได้ แต่ MSFT มุ่งเน้นไปที่ PS มันค่อนข้างดีจริงๆโดยใช้คุณสมบัติที่มุ่งเน้นไปที่ท่อของเชลล์ที่ใช้ Unix (bash, sh, csh, ksh, zsh และอื่น ๆ ) และการขยายเพื่ออนุญาตให้ส่งผ่านวัตถุเทียบกับข้อความ
Peter Halverson

3

Git เป็นชุดของโปรแกรมยูทิลิตี้บรรทัดคำสั่งที่ออกแบบมาเพื่อดำเนินการบนสภาพแวดล้อมบรรทัดคำสั่งสไตล์ Unix ระบบปฏิบัติการสมัยใหม่เช่น Linux และ macOS มีทั้งเทอร์มินัลบรรทัดคำสั่ง Unix ในตัว สิ่งนี้ทำให้ระบบปฏิบัติการเสริม Linux และ macOS เมื่อทำงานกับ Git Microsoft Windows ใช้พรอมต์คำสั่งของ Windows แทนซึ่งเป็นสภาพแวดล้อมเทอร์มินัลที่ไม่ใช่ Unix

Git Bash คืออะไร?

Git Bash เป็นแอปพลิเคชันสำหรับสภาพแวดล้อม Microsoft Windows ซึ่งมีเลเยอร์การจำลองสำหรับประสบการณ์บรรทัดคำสั่ง Git Bash เป็นคำย่อของ Bourne Again Shell เชลล์เป็นแอปพลิเคชันเทอร์มินัลที่ใช้เพื่อเชื่อมต่อกับระบบปฏิบัติการผ่านคำสั่งที่เขียนขึ้น Bash เป็นเชลล์เริ่มต้นยอดนิยมบน Linux และ macOS Git Bash เป็นแพ็คเกจที่ติดตั้ง Bash ยูทิลิตี้ bash ทั่วไปและ Git บนระบบปฏิบัติการ Windows

แหล่งที่มา: https://www.atlassian.com/git/tutorials/git-bash


2
"Git เป็นชุดโปรแกรมยูทิลิตี้บรรทัดคำสั่งที่ออกแบบมาเพื่อดำเนินการบนสภาพแวดล้อมบรรทัดคำสั่งสไตล์ Unix" ... จริงและไม่น่าแปลกใจเมื่อพิจารณาว่า Git ถูกสร้างขึ้นโดย Linus Torvalds ( en.wikipedia.org/wiki/Linus_Torvalds )
VonC
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.