Mwongozo

Kusanidi Git: git config, jina, barua pepe na funguo za SSH

Imesasishwa: · Skillaria.Top

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.

NgaziBenderaFailiInatumika 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/configRepo zako zote
Ya ndani--local (chaguo-msingi).git/config ndani ya repoRepo 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.

HTTPSSSH
Anwanihttps://github.com/user/repo.gitgit@github.com:user/repo.git
Kuingia kunathibitishwa vipiTokeni ya ufikiaji au kuingia kupitia kivinjari (Credential Manager)Jozi ya funguo za SSH
Nywila ya akauntiHaikubaliwi tangu 2021Haihitajiki
Wakati inafaa zaidiWindows na Git Credential Manager, proksi za kampunimacOS, 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

  1. Sakinisha Git na uhakiki git --version.
  2. Weka user.name, user.email, init.defaultBranch na kihariri.
  3. Hamisha au tengeneza ~/.gitconfig yenye alias na mkakati wa pull.
  4. Tengeneza ufunguo mpya wa SSH (usinakili ufunguo wa zamani wa faragha kati ya mashine bila sababu) na uongeze kwenye GitHub.
  5. Hakiki ufikiaji kwa ssh -T git@github.com na 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.

Jifunze mada hii kwa video

Mada hii inafundishwa kwa kina pamoja na mazoezi katika kozi “Git kutoka mwanzo hadi msanidi programu anayejiweza”.

Nenda kwenye kozi