Kusanidi Git: git config, jina, barua pepe na funguo za SSH
Usanidi wa msingi wa Git ni amri git config --global user.name na git config --global user.email, zinazotia sahihi commit zako, pamoja na kuchagua kihariri na tawi chaguo-msingi. Kuingia GitHub bila nywila, tengeneza ufunguo wa SSH kwa ssh-keygen -t ed25519, ongeza ufunguo wa umma kwenye mipangilio ya akaunti na hakiki kwa ssh -T git@github.com.
Usanidi wa haraka wa Git kwa dakika moja
Mara baada ya usakinishaji endesha amri nne. Bila mbili za kwanza Git itakataa kufanya commit, nyingine zinaondoa usumbufu wa kawaida.
git config --global user.name "Anna Smirnova"
git config --global user.email "anna@example.com"
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
Hakiki matokeo:
$ git config --global --list
user.name=Anna Smirnova
user.email=anna@example.com
init.defaultbranch=main
core.editor=code --wait
Hapa chini tunaeleza kila mpangilio unafanya nini, Git inauhifadhi wapi, na jinsi ya kuunganisha kuingia kwenye GitHub kwa SSH.
Jinsi git config inavyofanya kazi: ngazi tatu za mipangilio
Amri git config inasoma na kuandika vigezo katika mojawapo ya faili tatu. Ngazi nyembamba inabatilisha ile pana.
| Ngazi | Bendera | Faili | Inatumika kwa |
|---|---|---|---|
| Ya mfumo | --system | /etc/gitconfig (kwenye Windows — kwenye folda ya usakinishaji wa Git) | Watumiaji wote wa kompyuta |
| Ya kimataifa | --global | ~/.gitconfig au ~/.config/git/config | Repo zako zote |
| Ya ndani | --local (chaguo-msingi) | .git/config ndani ya repo | Repo hii pekee |
Mambo mengi ya kibinafsi husanidiwa kimataifa, na tofauti huwekwa ndani. Kwa mfano, barua pepe ya kazini kwa miradi ya kampuni inawekwa ndani ya repo husika bila bendera --global.
Amri muhimu za git config
git config user.email # onyesha thamani ya sasa
git config --list --show-origin # mipangilio yote na faili kila moja inatoka
git config --global --edit # fungua ~/.gitconfig kwenye kihariri
git config --global --unset core.editor # futa kigezo
Bendera --show-origin ni msaidizi bora wa kutatua matatizo: inaonyesha kwa nini una barua pepe «isiyo sahihi», ikitaja faili ambayo thamani imetoka.
Jina na barua pepe: kwa nini si jambo dogo
Kila commit inahifadhi jina na barua pepe ya mwandishi milele. Hii si kuingia wala nywila — Git haithibitishi chochote. Lakini GitHub na GitLab wanaunganisha commit na akaunti yako kwa barua pepe: ikiwa anwani haifanani na barua pepe yoyote iliyothibitishwa kwenye wasifu, commit hazitahesabiwa kwenye grafu ya shughuli na zitaonekana bila picha ya mtumiaji.
Kubadilisha jina au barua pepe kwa nyuma bila kuandika upya historia hakuwezekani, kwa hiyo hakiki mipangilio kabla ya commit ya kwanza.
Ficha barua pepe halisi
Ikiwa repo ni ya umma, barua pepe yako inaonekana kwa yeyote anayeangalia historia. GitHub inapendekeza anwani ya huduma ya muundo ID+username@users.noreply.github.com (katika mipangilio ya Emails). Ingiza kwenye Git:
git config --global user.email "12345678+anna@users.noreply.github.com"
Barua pepe tofauti kwa kazi na miradi binafsi
Ili usisanidi kila repo ya kazi kwa mkono, tumia kuunganisha kwa masharti ya mipangilio. Katika ~/.gitconfig:
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
Na katika ~/.gitconfig-work:
[user]
email = anna@company.com
Sasa repo zote ndani ya ~/work/ zinatumia barua pepe ya kazi moja kwa moja. Alama ya kufyeka mwishoni mwa njia ni lazima.
Mipangilio mingine muhimu ya Git
Kihariri
Git inafungua kihariri kwa ujumbe wa commit, interactive rebase na merge. Kwa chaguo-msingi mara nyingi ni Vim. Chaguo:
git config --global core.editor "code --wait" # VS Code
git config --global core.editor "nano" # Nano
git config --global core.editor "subl -n -w" # Sublime Text
Tawi chaguo-msingi
init.defaultBranch main huweka jina la tawi la kwanza kwenye repo mpya (inapatikana tangu Git 2.28). Bila hiyo Git itaunda master na kuonyesha kidokezo cha kubadili jina.
Mistari mipya
git config --global core.autocrlf true # Windows
git config --global core.autocrlf input # macOS na Linux
Hivyo repo daima huhifadhi mistari mipya ya LF, na timuni haionekani «mabadiliko» katika mistari yote ya faili.
Tabia ya git pull
Ikiwa mkakati haujawekwa, Git ya kisasa itaomba uchague wazi unapokuwa na matawi yanayotofautiana. Chagua mmoja:
git config --global pull.rebase false # kuunganisha (merge), chaguo-msingi
git config --global pull.rebase true # rebase, historia ya mstari mmoja
git config --global pull.ff only # fast-forward tu, vinginevyo kosa
Majina ya faili ya Kicyrillic na rangi
git config --global core.quotepath false
git config --global color.ui auto
Alias
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"
git config --global alias.last "log -1 HEAD"
Sasa git lg inachora grafu ya matawi, na git last inaonyesha commit ya mwisho.
Jinsi ~/.gitconfig inavyoonekana baada ya usanidi
[user]
name = Anna Smirnova
email = anna@example.com
[init]
defaultBranch = main
[core]
editor = code --wait
autocrlf = input
quotepath = false
[pull]
rebase = false
[alias]
st = status
lg = log --oneline --graph --decorate --all
Ni faili ya maandishi ya kawaida, unaweza kuihariri kwa mkono na kuihamisha kati ya kompyuta.
Git login: jinsi ya kuingia GitHub
Git haina amri ya git login — mtego wa kawaida kwa wanaoanza. Git haihifadhi «akaunti»: uthibitishaji unafanyika wakati wa kuwasiliana na seva (clone, push, fetch) kwa mojawapo ya itifaki mbili.
| HTTPS | SSH | |
|---|---|---|
| Anwani | https://github.com/user/repo.git | git@github.com:user/repo.git |
| Kuingia kunathibitishwa vipi | Tokeni ya ufikiaji au kuingia kupitia kivinjari (Credential Manager) | Jozi ya funguo za SSH |
| Nywila ya akaunti | Haikubaliwi tangu 2021 | Haihitajiki |
| Wakati inafaa zaidi | Windows na Git Credential Manager, proksi za kampuni | macOS, Linux, seva, CI |
Kuingia kwa HTTPS
Katika Git for Windows na matoleo ya macOS yenye Git Credential Manager, git push ya kwanza itafungua dirisha la kivinjari kwa kuingia GitHub, na data itahifadhiwa kwenye hifadhi ya mfumo. Mbadala ni chombo rasmi cha GitHub CLI: amri gh auth login inakuongoza kupitia uthibitishaji na kusanidi Git. Ikiwa unafanya kila kitu kwa mkono, tengeneza Personal access token kwenye mipangilio ya GitHub (Developer settings) na uiandike badala ya nywila.
SSH kwa Git: usanidi hatua kwa hatua
Ufunguo wa SSH ni jozi ya faili: ufunguo wa faragha unabaki kwako, ule wa umma unampa GitHub. Seva inathibitisha kwamba unamiliki sehemu ya faragha, na nywila haiulizwi tena.
Hatua ya 1. Angalia kama ufunguo upo
ls -la ~/.ssh
Ikiwa tayari kuna id_ed25519 na id_ed25519.pub, nenda hatua ya 3.
Hatua ya 2. Tengeneza ufunguo
ssh-keygen -t ed25519 -C "anna@example.com"
Bonyeza Enter ili kuhifadhi kwenye njia ya chaguo-msingi, kisha weka kifungu cha nywila — kitalinda ufunguo ikiwa laptop itaibiwa. Ed25519 ndiyo algoriti ya kisasa inayopendekezwa. Ikiwa mfumo wa zamani hauiungi mkono, tumia ssh-keygen -t rsa -b 4096 -C "anna@example.com".
Hatua ya 3. Ongeza ufunguo kwenye ssh-agent
Agent inashikilia ufunguo uliofunguliwa kwenye kumbukumbu, ili usiandike kifungu cha nywila kila unapofanya push.
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
Kwenye macOS ongeza kwenye ~/.ssh/config mistari ifuatayo, ili kifungu kihifadhiwe kwenye keychain:
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_ed25519
kisha endesha ssh-add --apple-use-keychain ~/.ssh/id_ed25519.
Hatua ya 4. Ongeza ufunguo wa umma kwenye GitHub
cat ~/.ssh/id_ed25519.pub
Nakili mstari mzima, kuanzia ssh-ed25519. Kwenye GitHub fungua Settings → SSH and GPG keys → New SSH key, bandika ufunguo na upe jina linalotambulika, kwa mfano «Laptop 2026». Usitume wala kuchapisha faili isiyo na .pub — hilo ndilo ufunguo wa faragha.
Hatua ya 5. Hakiki muunganisho
$ ssh -T git@github.com
Hi anna! You've successfully authenticated, but GitHub does not provide shell access.
Unapounganisha kwa mara ya kwanza, SSH itauliza kama unamwamini mwenyeji — linganisha alama ya kidole (fingerprint) na zile zilizochapishwa kwenye nyaraka za GitHub kisha ujibu yes.
Hatua ya 6. Badilisha repo ili itumie SSH
Ikiwa repo iliclonewa kwa HTTPS, badilisha anwani ya remote:
git remote -v
git remote set-url origin git@github.com:anna/my-project.git
git push
Akaunti kadhaa za GitHub kwenye kompyuta moja
Ufunguo mmoja wa SSH unaweza kuunganishwa na akaunti moja ya GitHub tu. Kwa akaunti ya kazi na ya binafsi, tengeneza funguo mbili na majina bandia ya mwenyeji kwenye ~/.ssh/config:
Host github-work
HostName github.com
User git
IdentityFile ~/.ssh/id_ed25519_work
IdentitiesOnly yes
Clone repo za kazi kwa jina bandia: git clone git@github-work:company/app.git. Pamoja na includeIf ya barua pepe, hii inatoa mazingira ya kazi na ya binafsi yaliyotengana kabisa.
Makosa ya kawaida wakati wa usanidi
«Please tell me who you are»
Hazijawekwa user.name na user.email. Endesha amri za mwanzo wa makala kisha urudie commit.
«Permission denied (publickey)»
GitHub haijapata ufunguo unaofaa. Hakiki kwamba ufunguo umeongezwa kwenye agent (ssh-add -l), sehemu ya umma imeongezwa kwenye akaunti, na maelezo zaidi yanaonekana kwa ssh -vT git@github.com.
«Support for password authentication was removed»
Umeingiza nywila ya akaunti ukifanya kazi kwa HTTPS. Tumia tokeni, kuingia kupitia Credential Manager, au ubadilie SSH.
Commit kwenye GitHub bila picha
Barua pepe iliyo kwenye git config user.email haijaongezwa kwenye wasifu wa GitHub. Iongeze kwenye Settings → Emails — commit za zamani zitaunganishwa zenyewe.
Port 22 imefungwa kwenye mtandao
GitHub inakubali SSH pia kwenye port 443. Kwenye ~/.ssh/config weka Host github.com, Hostname ssh.github.com, Port 443.
Mpangilio wa usanidi kwenye kompyuta mpya
- Sakinisha Git na uhakiki
git --version. - Weka
user.name,user.email,init.defaultBranchna kihariri. - Hamisha au tengeneza
~/.gitconfigyenye alias na mkakati wa pull. - Tengeneza ufunguo mpya wa SSH (usinakili ufunguo wa zamani wa faragha kati ya mashine bila sababu) na uongeze kwenye GitHub.
- Hakiki ufikiaji kwa
ssh -T git@github.comna clone repo ya kazi kwa anwani ya SSH.
Ufunguo tofauti kwa kila kifaa pia una faida: ukipoteza laptop, unafuta ufunguo mmoja tu kwenye GitHub bila kugusa ufikiaji wa mashine nyingine.
Hitimisho
Usanidi wa Git unajumuisha hatua tatu: kuweka jina na barua pepe kwa git config --global, kuchagua kihariri, tawi chaguo-msingi na mkakati wa pull, kisha kuunganisha kuingia kwenye GitHub — ni rahisi na salama zaidi kwa ufunguo wa SSH. Kumbuka kwamba hakuna amri ya git login: uthibitishaji unafanyika wakati wa kuwasiliana na seva. Usanidi wa mipangilio na ufikiaji wa SSH unafundishwa kwa vitendo katika kozi ya Git.
Maswali ya mara kwa mara
Mipangilio ya Git inahifadhiwa wapi kwenye Windows?
Ya kimataifa iko kwenye faili C:\Users\Jina\.gitconfig, na ya ndani kwenye .git\config ya kila repo. Mahali kamili panaonekana kwa git config --list --show-origin.
Ninawezaje kuweka upya mipangilio ya Git?
Futa au taja upya faili ~/.gitconfig — Git itarudi kwenye thamani za chaguo-msingi. Kigezo kimoja kinafutwa kwa git config --global --unset jina.
Je, ufunguo mmoja wa SSH unaweza kutumika kwa GitHub na GitLab?
Ndiyo, ufunguo mmoja wa umma unaweza kuongezwa kwenye huduma tofauti. Kizuizi kimoja tu: kwenye GitHub ufunguo unafungwa kwa akaunti moja.
Ninawezaje kutia sahihi commit ili GitHub ionyeshe alama ya Verified?
Sanidi usainishaji kwa ufunguo wa GPG au SSH: kwa mfano git config --global gpg.format ssh, user.signingkey pamoja na njia ya ufunguo wa umma, na commit.gpgsign true, kisha ongeza ufunguo kwenye GitHub kama Signing key.
Je, ninahitaji kusanidi Git upya baada ya kusasisha?
Hapana, kusasisha hakugusi ~/.gitconfig wala funguo kwenye ~/.ssh — mipangilio yote inabaki.
Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Git kutoka mwanzo hadi msanidi programu anayejiweza”.
- Kusakinisha na Kusanidi: Kutayarisha Git kwa Matumizi ya Kwanza
- GitHub na Hifadhi za Mbali: Msimbo Wako Hewani