Ý nghĩa chính xác của Git Bash là gì?


94

Git Bash

Tôi đã làm việc với Git Bash trong hai ngày qua. Tôi biết bây giờ là hoạt động cơ bản như commit, push, pull, fetch, và merge. Nhưng tôi vẫn không biết bản thân Git Bash thực sự là gì!

Tôi đã tìm kiếm rất nhiều về Git Bash, nhưng tất cả các trang web mà tôi thấy đều tập trung vào chức năng của các lệnh của nó. Tôi vẫn chưa tìm được câu trả lời tốt cho câu hỏi của mình. Bây giờ, tôi nghĩ, tôi đang ở đúng nơi để có được câu trả lời này!


4
Mọi người cũng có thể quan tâm đến câu hỏi của tôi trên SuperUser Git Bash cho Windows là gì?
geneorama 12/09/18

Không có cái gọi là "Git bash". Có "bash" và có "git". Bash là một trình thông dịch dòng lệnh tương tác, đôi khi còn được gọi là "sh" hoặc "shell" vì lý do lịch sử, tương tự như "cmd" của Microsoft. Có , tuy nhiên, "git vỏ", mà là một "khóa xuống" lệnh thông dịch viên sử dụng để hạn chế sức mạnh của truy cập nặc danh đến các máy chủ git, và là một phần của sự phân bố git. Vì git được phát triển trêncho các hệ thống như UNIX, nên nó được ghép nối tốt nhất với CLI "bash", mặc dù về lý thuyết, nó là shell-bất khả tri.
Hatebit

Câu trả lời:


78

git bash là một shell trong đó:

  • quá trình đang chạy là sh.exe(được đóng gói bằng msysgit , as share/WinGit/Git Bash.vbs)
  • git là một lệnh đã biết
  • $HOME được định nghĩa

Xem " Sửa lỗi msysGit $HOMEvị trí di động ":

Trên Windows 64:

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

Điều này khác với git-cmd.batcung cấp các lệnh git trong dấu nhắc lệnh DOS thuần túy.

Một công cụ như GitHub dành cho Windows (G4W) cung cấp các trình bao khác nhau cho git (bao gồm cả một PowerShell)


Cập nhật tháng 4 năm 2015 :

Lưu ý: git bash trong msysgit / Git cho windows 1.9.5 là cũ:

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

Nhưng với việc loại bỏ dần msysgit (Q4 2015) và Git mới cho Windows (Q2 2015), giờ đây bạn đã có Git cho Windows 2.3.5 .
Nó có một bash gần đây hơn nhiều, dựa trên dự án msys2 64bits , một bản viết lại độc lập của MSYS, dựa trên Cygwin hiện đại (lớp tương thích POSIX) và MinGW-w64 với mục đích là khả năng tương tác tốt hơn với phần mềm Windows gốc. msys2đi kèm với trình cài đặt riêng của nó .

Git bash bây giờ là (với Git mới cho Windows):

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

Câu trả lời gốc (tháng 6 năm 2013) Chính xác hơn, từ msygit wiki :

Trước đây, Git trên Windows chỉ được hỗ trợ chính thức bằng cách sử dụng Cygwin.
Để giúp tạo phiên bản Windows gốc, dự án này đã được bắt đầu, dựa trên mingw fork .

Để làm cho 'súp' sữa của tên dự án rõ ràng hơn, chúng tôi nói như thế này:

  • msysGit - là tên của dự án này, một môi trường xây dựng cho Git dành cho Windows, phát hành các tệp nhị phân chính thức
  • MinGW - là một môi trường phát triển tối giản cho các ứng dụng Microsoft Windows bản địa.
    Nó thực sự là một lớp thời gian biên dịch rất mỏng trên Microsoft Runtime; Do đó, các chương trình MinGW là các chương trình Windows thực sự, không có khái niệm về đường dẫn kiểu Unix hoặc các đặc tính POSIX như fork()lệnh gọi
  • MSYS - là một hệ thống thông dịch dòng lệnh Bourne Shell, được sử dụng bởi MinGW (và những người khác), đã được phân nhánh trước đây từ Cygwin
  • Cygwin - một môi trường giống như Linux, được sử dụng trong quá khứ để xây dựng Git cho Windows, ngày nay không liên quan đến msysGit

Vì vậy, mô tả hai dòng của bạn về "git bash" là:

" Git bash" là một msys shell có trong "Git for Windows" và là một phiên bản thu gọn của Cygwin (phiên bản cũ tại thời điểm đó), mục đích duy nhất là cung cấp đủ lớp POSIX để chạy bash.


Nhắc nhở:

msysGit là môi trường phát triển để biên dịch Git cho Windows. Nó đã hoàn tất, theo nghĩa là bạn chỉ cần cài đặt msysGit và sau đó bạn có thể xây dựng Git. Mà không cần cài đặt bất kỳ phần mềm của bên thứ 3.

msysGit không phải là Git dành cho Windows; đó là trình cài đặt cài đặt Git - và chỉ Git .

Xem thêm trong " Sự khác biệt giữa msysgit và Cygwin + git? ".


2
tôi muốn biết chỉ ý nghĩa về điều đó!
DRAJI

@DRAJ Tôi có nghĩa là câu trả lời của tôi không bao gồm những gì bạn muốn biết?
VonC

@DRAJI Bạn có muốn biết thêm chi tiết nào về " git bash" không?
VonC

Tất nhiên. Nhưng trước hết tôi chỉ muốn biết mô tả hai dòng về điều đó, sau đó tôi sẽ thực hiện bước tiếp theo.
DRAJI

3
Ví dụ, sự khác biệt giữa UNIX Bash và Git Bash là gì?
Alexander Mills

22

Tôi nghĩ rằng người đặt câu hỏi đang (đã) nghĩ rằng git bash là một lệnh như git init hoặc git checkout . Git bash không phải là một lệnh , nó là một giao diện . Tôi cũng sẽ cho rằng người hỏi không phải là người dùng linux vì bash rất phổ biến trên thế giới unix / linux. Tên "bash" là từ viết tắt của " B ourne A gain SH ell". Bash là một giao diện lệnh chỉ có văn bản có các tính năng cho phép chạy các tập lệnh tự động. Một phép tương tự tốt sẽ là so sánh bash với giao diện PowerShell mới trong Windows7 / 8. Một người nghèosự tương tự (nhưng một điều có thể được nhiều người hiểu hơn) là sự kết hợp của dấu nhắc lệnh và tệp lệnh .BAT (batch) từ những ngày của DOS và các phiên bản Windows đầu tiên.

NGƯỜI GIỚI THIỆU:


10

Bash là Giao diện Dòng lệnh được Brian Fox tạo ra hơn 27 năm trước như một phần mềm thay thế miễn phí cho Bourne Shell. Một shell là một loại Giao diện Dòng lệnh cụ thể. Bash là "mã nguồn mở" có nghĩa là bất kỳ ai cũng có thể đọc mã và đề xuất các thay đổi. Kể từ khi ra đời, nó đã được hỗ trợ bởi một cộng đồng lớn các kỹ sư, những người đã làm việc để biến nó thành một công cụ đáng kinh ngạc. Bash là trình bao mặc định cho Linux và Mac. Vì những lý do này, Bash là shell được sử dụng nhiều nhất và được phân phối rộng rãi.

Windows có Giao diện dòng lệnh khác, được gọi là Dấu nhắc lệnh. Mặc dù điều này có nhiều tính năng giống như Bash, nhưng Bash phổ biến hơn nhiều. Do sức mạnh của cộng đồng mã nguồn mở và các công cụ mà họ cung cấp, thành thạo Bash là một khoản đầu tư tốt hơn thành thạo Command Prompt.

Để sử dụng Bash trên máy tính Windows, chúng ta cần tải và cài đặt một chương trình có tên là Git Bash. Git Bash (Is the Bash for windows) cho phép chúng ta dễ dàng truy cập Bash cũng như một công cụ khác có tên là Git, bên trong môi trường Windows.


1
Ngoài ra, CLI hiện tại cho Windows là PowerShell. Vỏ CMD dựa trên nền tảng DOS cổ vẫn còn tồn tại để tương thích nhưng MSFT tập trung mọi sự chú ý của họ vào PS. Nó thực sự khá hay, sử dụng các tính năng hướng ống dẫn của shell dựa trên Unix (bash, sh, csh, ksh, zsh, v.v.) và mở rộng chúng để cho phép truyền các đối tượng, so với chỉ văn bản.
Peter Halverson

3

Về cốt lõi, Git là một tập hợp các chương trình tiện ích dòng lệnh được thiết kế để thực thi trên môi trường dòng lệnh kiểu Unix. Cả hai hệ điều hành hiện đại như Linux và macOS đều tích hợp sẵn các thiết bị đầu cuối dòng lệnh Unix. Điều này làm cho hệ điều hành Linux và macOS bổ sung khi làm việc với Git. Microsoft Windows thay vào đó sử dụng dấu nhắc lệnh của Windows, một môi trường đầu cuối không phải Unix.

Git Bash là gì?

Git Bash là một ứng dụng dành cho môi trường Microsoft Windows cung cấp một lớp mô phỏng cho trải nghiệm dòng lệnh Git. Bash là từ viết tắt của Bourne Again Shell. Shell là một ứng dụng đầu cuối được sử dụng để giao tiếp với hệ điều hành thông qua các lệnh đã viết. Bash là một shell mặc định phổ biến trên Linux và macOS. Git Bash là một gói cài đặt Bash, một số tiện ích bash phổ biến và Git trên hệ điều hành Windows.

nguồn: https://www.atlassian.com/git/tutorials/git-bash


2
"Git là một tập hợp các chương trình tiện ích dòng lệnh được thiết kế để thực thi trên môi trường dòng lệnh kiểu Unix" ... đúng và không có gì đáng ngạc nhiên, vì Git được tạo ra bởi Linus Torvalds ( en.wikipedia.org/wiki/Linus_Torvalds )
VonC
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.