Git Bash: ni nini na jinsi ya kuitumia kwenye Windows
Git Bash ni terminal ya Windows inayowekwa pamoja na Git for Windows na inatoa mazingira ya Unix: ganda la bash, amri ls, cd, cat, grep, ssh na Git yenyewe. Inatumika ili amri za Git na maelekezo ya nyaraka ziendeshe kwenye Windows kama kwenye Linux na macOS.
Git Bash ni nini
Git Bash ni programu ya Windows inayowekwa pamoja na Git for Windows na kufungua dirisha la terminal lenye ganda la bash. Ndani yake Git yenyewe inafanya kazi pamoja na zana za kawaida za Unix: ls, cd, pwd, cat, grep, find, less, ssh, ssh-keygen, curl na nyinginezo.
Kiufundi ni toleo la mazingira ya MSYS2: programu zimejengwa kwa Windows lakini zinatenda kama kwenye Linux. Dirisha la terminal kwa chaguo-msingi ni MinTTY. Si mashine pepe wala Linux kamili — kwa hilo kuna WSL. Git Bash ni nyepesi: inaanza papo hapo na inafanya kazi moja kwa moja na faili za Windows.
Kwenye utafutaji mara nyingi huandikwa «git bush» au «git baash» — ni kitu kile kile. Bash ni kifupi cha Bourne Again SHell, hakina uhusiano na neno «bush» (kichaka).
Kwa nini Git Bash, wakati kuna cmd na PowerShell
Git hufanya kazi vizuri ndani ya PowerShell na ya amri ya kawaida. Lakini Git Bash ina faida za kivitendo, hasa kwa wanaoanza.
- Amri zile zile kwenye mifumo yote. Nyaraka za Git, majibu kwenye mabaraza, maelekezo ya GitHub na kozi huandika amri kwa bash. Kwenye Git Bash zinafanya kazi bila kubadilishwa:
rm -rf build,cat ~/.ssh/id_ed25519.pub,export VAR=value. - Zana za SSH zilizo tayari.
ssh-keygen,ssh-agent,ssh-addziko tayari — ufunguo wa GitHub unatengenezwa kwa dakika moja. - Vidokezo vya Git kwenye kidokezo cha amri. Git Bash inaonyesha tawi la sasa moja kwa moja kwenye mstari wa kuandika, kwa mfano
(main), na wakati wa merge —(main|MERGING). - Kukamilisha kiotomatiki. Tab inakamilisha amri za Git, majina ya matawi na faili.
- Ujuzi wa baadaye. Seva, kontena za Docker na CI zinaendeshwa kwenye Linux. Ukizoea bash kwenye Git Bash, utajihisi nyumbani ukiwa kwenye seva.
Git Bash, Git CMD, PowerShell: tofauti ni nini
Baada ya kusakinisha Git for Windows, menyu ya «Start» inaonyesha vipengee kadhaa, na hilo linachanganya.
| Zana | Ni nini | Lini kutumia |
|---|---|---|
| Git Bash | Ganda la bash lenye zana za Unix na Git | Kazi kuu ya Git, kufuata maelekezo kutoka mtandaoni |
| Git CMD | Amri ya kawaida ya Windows (cmd.exe) yenye Git kwenye PATH | Ukizoea cmd na unahitaji amri za git tu |
| Git GUI | Kiolesura rahisi cha picha kilichojengwa kwa Tcl/Tk | Kujenga commit kwa macho; haitumiki sana |
| PowerShell / cmd | Terminal za kawaida za Windows | Git inafanya kazi ukichagua PATH «from the command line and also from 3rd-party software» wakati wa usakinishaji |
Git CMD si programu tofauti, bali cmd ya kawaida yenye mazingira yaliyoandaliwa. Amri za Git ni zile zile humo, lakini ls, cat na grep hazifanyi kazi: badala yake ni dir, type na findstr. Maswali ya «cmd git» kwa kawaida yanamaanisha hili: jinsi ya kuendesha git kutoka amri ya kawaida. Jibu ni kwamba hakuna njia maalum — endesha tu git status ikiwa Git iko kwenye PATH.
Jinsi ya kufungua Git Bash
Kutoka menyu ya «Start»
Andika «Git Bash» na uifungue. Terminal itafunguka kwenye folda ya nyumbani ya mtumiaji: /c/Users/Jina, ambayo kwenye bash inaonyeshwa kama ~.
Kwenye folda unayotaka kupitia menyu ya kulia
Njia rahisi zaidi: kwenye Explorer bofya kulia sehemu tupu ndani ya folda ya mradi na uchague «Open Git Bash here». Kwenye Windows 11 chaguo hili liko chini ya «Show more options» (au Shift + bofya kulia).
Kwenye terminal ya VS Code
Fungua terminal (Ctrl + `), bonyeza mshale karibu na «+» kisha uchague Git Bash. Ili ifunguke kwa chaguo-msingi, tekeleza amri «Terminal: Select Default Profile» na uchague Git Bash.
Kwenye Windows Terminal
Git for Windows inaweza kuongeza wasifu wa Git Bash kwenye Windows Terminal yenyewe (chaguo kwenye msaidizi wa usakinishaji). Ikiwa wasifu haupo, tengeneza mpya kwa amri C:\Program Files\Git\bin\bash.exe -i -l.
Njia na faili: tofauti kuu na Windows
Kwenye Git Bash njia zinaandikwa kwa mtindo wa Unix. Diski C: inageuka kuwa /c, na mistari ya kurudi nyuma inageuka kuwa ya mbele.
| Windows | Git Bash |
|---|---|
C:\Users\Anna\projects | /c/Users/Anna/projects |
D:\work | /d/work |
%USERPROFILE% | ~ au $HOME |
Ikiwa njia ina nafasi, iweke ndani ya nukuu: cd "/c/Users/Anna/My Projects". Kufungua folda ya sasa kwenye Explorer, tumia explorer ., na kwenye VS Code — code ..
Amri za msingi za Git Bash kwa mwanzoni
Kuvinjari na faili
pwd # niko wapi
ls -la # orodha ya faili, pamoja na zilizofichwa (.git, .gitignore)
cd projects/site # ingia kwenye folda
cd .. # nenda ngazi moja juu
mkdir new-app # tengeneza folda
touch index.html # tengeneza faili tupu
cat README.md # onyesha yaliyomo
rm file.txt # futa faili
rm -r old-folder # futa folda pamoja na yaliyomo
clear # safisha skrini
Hifadhi ya kwanza moja kwa moja kwenye 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 "Habari, Git" > hello.txt
$ git add hello.txt
$ git commit -m "Ongeza hello.txt"
$ git log --oneline
Baada ya git init kidokezo kitabadilika: jina la tawi litaonekana kwenye mabano. Hii ni njia ya haraka ya kujua kuwa uko ndani ya hifadhi.
Mbinu muhimu
- Tab — kukamilisha amri, matawi na faili. Bonyeza mara mbili kuona chaguo.
- Mshale wa juu — amri iliyotangulia;
history— historia yote; Ctrl + R — kutafuta kwenye historia. - Kunakili/kubandika — kwenye MinTTY kuchagua kwa panya tu kunakili; kubandika ni Shift + Insert au kitufe cha kulia cha panya. Ctrl + C kwenye terminal inasimamisha amri, si kunakili.
- q — kutoka kwenye kuonyesha kurasa (
git log,git diffhufunguka kwenyeless). - Esc, kisha :q! na Enter — kutoka Vim ikiwa ilifunguka kwa ujumbe wa commit.
Git CLI: kwa nini ujifunze mstari wa amri
Git CLI ni kiolesura cha mstari wa amri cha Git, yaani amri zenyewe git .... Vifaa vya picha ni vizuri kutazama historia, lakini vina mipaka: si operesheni zote zinapatikana, na kitufe kikishindwa hakielezi kinachotokea. Mstari wa amri unatoa udhibiti kamili na ujumbe wa kina.
Sababu nyingine: kwenye mahojiano au kwenye timu ya mtu mwingine utaulizwa jinsi unavyoghairi commit au kusuluhisha conflict, na kila mtu ana GUI yake. Amri zinafanana kila mahali. Mkakati mzuri ni kufanya kazi kwenye CLI, na kutumia GUI au zana za IDE kwa kutazama diff na historia.
Kuweka Git Bash kwa mapendeleo yako
Aliases kwenye ~/.bashrc
Git Bash inasoma ~/.bash_profile na ~/.bashrc inapoanza. Ongeza mifupisho:
alias gs='git status'
alias gl='git log --oneline --graph --all'
alias ll='ls -la'
Ili mabadiliko yaanze bila kufunga terminal, tekeleza source ~/.bashrc. Ikiwa wakati wa kuanza utaona onyo kwamba .bashrc imepatikana lakini .bash_profile haipo, Git Bash itaunda .bash_profile yenyewe — hilo ni la kawaida.
Aliases za Git yenyewe
Aliases zinaweza pia kuhifadhiwa ndani ya Git, na hufanya kazi kwenye terminal yoyote:
git config --global alias.st status
git config --global alias.lg "log --oneline --graph --all"
Sasa git st na git lg zinafanya kazi kwenye Git Bash na PowerShell zote.
Mwonekano
Fonti, ukubwa, rangi na uwazi vinabadilishwa kwa kubofya kulia kichwa cha dirisha → Options. Kwa herufi za Kisirili au lugha nyingine, katika sehemu ya Text hakikisha umechagua usimbaji UTF-8.
Matatizo ya kawaida kwenye Git Bash
Herufi zisizosomeka badala ya herufi za lugha yako kwenye git log
Kwa kawaida inasaidia kuweka UTF-8 kwenye Options → Text na kuongeza mstari export LANG=ru_RU.UTF-8 kwenye ~/.bashrc (badilisha lugha kwa yako). Kwa majina ya faili yenye herufi zisizo za ASCII kwenye git status, tekeleza git config --global core.quotepath false — vinginevyo yanaonyeshwa kama mfuatano wa kutoroka kama \320\277.
Programu za mwingiliano zinakwama
Baadhi ya programu za console (kwa mfano kiingilizi cha Python au node bila hoja) zinatenda ajabu kwenye MinTTY. Ziendeshe kupitia winpty: winpty python, au tumia Git Bash ndani ya Windows Terminal.
Njia zinageuka kuwa kitu cha ajabu
MSYS hubadilisha kiotomatiki hoja zinazofanana na njia za Unix kuwa njia za Windows. Wakati mwingine hili linasumbua, kwa mfano unapopitisha /app kwa docker run. Suluhisho ni kuandika mara mbili mstari (//app) au kuweka MSYS_NO_PATHCONV=1 kwa amri husika.
«Permission denied (publickey)» wakati wa push
Ufunguo wa SSH haujatengenezwa au haujaongezwa kwenye GitHub. Tengeneza ufunguo kwenye Git Bash kwa amri ssh-keygen -t ed25519 -C "you@example.com", nakili yaliyomo ya ~/.ssh/id_ed25519.pub kwenye mipangilio ya GitHub, kisha hakiki kwa ssh -T git@github.com.
Git Bash au WSL
WSL ni Linux halisi ndani ya Windows, yenye mfumo wake wa faili na vifurushi. Inahitajika ukiendeleza kwa Linux: unaendesha Docker, unakusanya programu, unatumia mrundiko wa seva. Git Bash ni rahisi na nyepesi, na kwa kazi ya Git inatosha kabisa. Jambo muhimu ni kutochanganya: hifadhi iliyoclonewa ndani ya WSL ni bora kusimamiwa na Git kutoka WSL, na hifadhi iliyo kwenye diski C: — Git for Windows.
Muhtasari
Git Bash ni terminal yenye bash na zana za Unix, inayokuja pamoja na Git for Windows. Inaifanya Windows ifuate nyaraka na maelekezo ya Git, inatoa SSH tayari na kuonyesha tawi kwenye kidokezo. Git CMD ni Git ile ile kwenye amri ya kawaida, bila zana za Unix. Kwa kujifunza na kazi ya kila siku kwenye Windows chagua Git Bash — kozi ya Git inaitumia kama terminal kuu kwenye mazoezi ya vitendo.
Maswali ya mara kwa mara
Je, Git Bash ni bure?
Ndiyo, Git Bash ni sehemu ya Git for Windows na inasambazwa bure chini ya leseni huria.
Je, Git Bash inaweza kusakinishwa bila Git?
Hapana, Git Bash inawekwa pamoja na Git for Windows pekee. Ikiwa Git tayari imewekwa, Git Bash iko kwenye menyu ya «Start».
Je, Git Bash ipo kwenye macOS na Linux?
Hakuna programu tofauti na haihitajiki: kwenye macOS na Linux terminal iliyojengwa ndani tayari inafanya kazi na bash au zsh pamoja na zana za Unix.
Git Bash inahifadhi wapi folda ya nyumbani na mipangilio?
Folda ya nyumbani ni C:\Users\Jina, na kwenye bash inapatikana kama ~. Hapo pia kuna .bashrc, .bash_profile, .gitconfig na folda ya .ssh.
Je, inawezekana kuendesha faili za bat na exe ndani ya Git Bash?
Ndiyo, programu za Windows zinaendeshwa kwa jina au njia yake, kwa mfano ./build.bat au notepad file.txt.
Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Git kutoka mwanzo hadi msanidi programu anayejiweza”.
Nenda kwenye kozi