Git bilan ishlashda asosiy eslatmalar
- Published on
- • 6 mins read•––– views
Ushbu post men kabi 'git' orqali 'command-line' bilan ishlashni afzal ko'radigan dasturchilar uchun yozilgan. Agar siz GUI-ni yaxshi ko'rsangiz, umid qilamanki, siz hali ham bu yerda foydali narsalarni topishingiz mumkin.
Git alias
Git aliases are a powerful workflow tool that create shortcuts to frequently used Git commands
git alias
bu sizga uzun bo'lgan buyruqlarni qisqartirib, o'zizga moslab yozish uchun yordam beradi(qisqacha o'zingiz uchun shortcut).
Syntax
$ git config --global alias.<shortcut> <original-command>
Aliasdan foydalanganda --global
buyrug'ini qo'shib qoyishni unutmang aks holda boshqa proyektlarizda ishlamay qolishi mumkin
Git status
Commit qilishdan oldin o'zgarishlarni tekshirib oling:
$ git config --global alias.st status
# Endi `git status` o'rniga `git st` dan foydalanishingiz mumkin$ git stOn branch v2Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: components/Twemoji.js modified: css/tailwind.css modified: data/blog/git-notes.mdx
Tip:
git st
alias qilgan buyrug'imizga--short
buyrug'ini qo'shib qoysak git status qisqartirilgan holda ya'ni terminalda ortiqcha narsalarni chiqarmay ko'rsatadi. Aliasimizga git status shortni qo'wib qoyamiz.
$ git config --global alias.s 'status --short'
# endi `git st` buyrug'i o'rniga `git s` buyrug'idan foydalanamiz$ git s M components/Image.js M data/blog/git-notes.mdx ?? public/static/images/misol.jpg
Ancha tozaroq ma'lumotlar chiqdi, shundaymi?
Git status short haqida yana koproq shu link orqali bilib olishingiz mumkin.
Git commit
$ git config --global alias.cm 'commit -m'
Commit qilib gitga o'zgarishlarini qo'shib olamiz
$ git cm "Initial commit"
Tip: Agar o'zgarishlar faqat mavjud fayllarga tegishli bo'lsa
--all
yoki-a
bayrog'idan (ingliz tilida flag deb yuritiladi) foydalaning.
$ git config --global alias.cam 'commit -am'
# Hozir bu yerda ikkita git buyrug'ini ishlatamiz$ git add style.css # `style.css` is already existed, not new file!$ git cm "Update style"
# BU yerda shu ishni bitta buyruq bilan qilamiz$ git cam "Update style"
Ko'proq ma'lumotni shu linkdan olishingiz mumkin.
Git stash
Stash the changes in a dirty working directory away
Git stash o'zgarishlarni githubni alohida joyida saqlaydi.
# Alias yaratish shartmas ozi oson xotiramizda qoladi$ git stash
Alohida folderda turgan narsani qaytarib olib avvalgi folderda kodlarimiz qolmasligi uchun ushbu buyruqdan foydalanamiz:
$ git stash pop
Bu uchun alohida alias yaratib olamiz:
$ git config --global alias.sp 'stash pop'
# Hozir$ git sp
# Oldin$ git stash pop
Git stash haqida ko'proq ma'lumotni ushbu link orqali bilib olishingiz mumkin.
Git pull/push
pull rebase
va force push
buyruqlari bizga doim toza commit qilishga yordam berishadi!
-
pull rebase
$ git config --global alias.prb 'pull origin --rebase'# Hozir$ git pull origin --rebase main# Keyin$ git prb main# Yoki$ git prb master
reabase yangi github foydalanuvchilari uchun maslahat berilmaydigan buyruqlardan biri
-
Xosh, rebasedan song muammo chiqsachi?
git diff
buyrug'i bilan muammolarni filtirlaymiz bu uchun ham alias yasab olamiz:$ git config --global alias.cf 'diff --name-only --diff-filter=U'# Barcha muammolarni ko'rish$ git cf# Barcha muammolarni bartaraf etganimizdan so'ng$ git add .# rebaseni tugatamiz$ git rebase --continue -
force push
rebasedan keyin aksariyat holda push
ishlamaydi bu holda repoga projectni majburan push qilishimiz uchun:
$ git config --global alias.pf 'push --force-with-lease'
# rebasingdan so'ng$ git pf
Nima uchun --force
buyrug'i emas?
TL;DR
Doim ham
--force
buyrug'idan foydalanish xato hisoblanadi agar 2 ta dasturchi bitta projectda ishlasa bu buyruq katta muammolar keltirib chiqarishi mumkin ya'ni repodagi o'zgarishlarga qaramay majburan push qiladi, bu holda bizga repoda o'zgarishlar bo'lmagan vaqtda push qiladigan buyruq--force-with-lease
yordamga keladi.
Git checkout
$ git config --global alias.co 'checkout'
# Keyin$ git co main
Yangi branch yaratamiz:
$ git config --global alias.cob 'checkout -b'
# Keyin$ git cob feature-x
Tip: oldingi branchga checkout qilish uchun
git co -
dan foydalanamiz
Masalan:
$ git branchdev* branchmain# hozirgi branch bu `branch`
# `dev` ga checkout qilamiz$ git co dev
#`branch` dan foydalanish uchun qaytamiz$ git co -# O'rniga$ git checkout branch
Git diff
$ git config --global alias.d 'diff'
# Masalan$ git d style.css
Eslab qoling yoki yozib oling
Barcha qilgan Aliasingizni ~/.gitconfig
faylda (Macos) da ko'rishingiz yoki tahrirlashingiz mumkin.
$ vim ~/.gitconfig
# Config filedan aliaslaringizni toping[alias] s = status --short st = status cm = commit -m # ...
Bu ishni qilish uchun sizdan talab qilinadigan narsa vim
ni bilishingiz
Ushbu mem holatiga tushib qolishdan o'zingizni asrang.
Git workflow
# Stash qiling$ git stash
# o'zgarishlarni yangilab oling$ git prb main
# stashdagi o'zgarishlarni yuklab oling$ git sp
# git statusni tekshiring$ git s
# o'zgargan fayllarni tekshirib oling$ git d # or git d file.ext
$ git add .
# Commit$ git cm "commit message"
# yoki$ git cam "commit message"
# o'zgarishlarni yana yangilang$ git prb main
# Agar muammolar bolsa rebase qiling$ git add file.ext$ git rebase --continue
# Force push$ git pf
Bu Open Source dasturchi hayoti
.gitignore
va .gitkeep
.gitignore
Foydalanishga tayyor shablonlar
Tip: Fayl va papkalarni yoz
# hamma fayl va papkalarni ignore qilamizhomework/*
# Faqat shu faylni push qilish uchun olib qolamiz!homework/file-to-keep
.gitkeep
Bo'sh papkani repoga qanday yuklash mumkin?
.gitkeep faylini yarating, uni bo'sh papkaga qo'ying, endi siz buni push qilsangiz bo'ladi!
**.gitkeep o'rniga boshqa fayl ham qoyishingiz mumkin bu yerda hiyla qilyapmiz repoga projectni push qilganda bo'sh papkalar tashlab ketiladi biz shunchaki ichiga oddiy fayl yuklayapmiz.
Happy sharing