git - хялбаршуулсан заавар

Гитийг амархнаар ойлгоход зориулсан хялбаршуулсан зааварчилгаа. Хэцүү зүйл үгүй ;)

Жиргэх

Roger Dudler-н бүтээл.
@tfnico, @fhd болон Namics нарын дэмжлэгтэйгээр бүтээгдэв.
Монгол хэл дээрх орчуулгыг Ganni хийв.
Зааварчилгааг бусад хэлээр үзээрэй. deutsch, español, français, italiano, nederlands, português, русский, türkçe,
မြန်မာ, 日本語, 中文, 한국어 Vietnamese
Энэхүү зааварчилгаатай холбоотой асуудлуудыг энд (github)-р дамжуулан илгээгээрэй. Харин Монгол орчуулгатай холбоотой санал хүсэлтээ энд илэрхийлнэ үү.

Frontify - Collaboration for Web Designers & Front-End Developers

Програм суулгах

OSX-т зориулсан Git татах

Виндовст зориулсан Git татах

Linux-т зориулсан Git татах

Шинэ агуулах (repo) үүсгэх

шинэ хавтас үүсгээд, түүнрүүгээ ороод дараах командуудыг ажиллуулаарай.
git init
шинэ агуулах үүсгэнэ

Агуулахаас таталт хийх

(checkout)

локал компьютер дээрх агуулахаас таталт хийе гэвэл гэвэл
git clone /локал/агуулахын/зам командыг ашиглана.
Харин дэлхийн өөр хаа нэгтээ байрлах сэрвэр дээрх агуулахаас таталт хийх бол дараах командыг ашиглана
git clone хэрэглэгчийн-нэр@хост:/агуулахын/зам

ажиллагаа

таны үүсгэсэн агуулах Гит-н удирддаг гурван "модноос" бүрдэнэ. Эхнийх нь эх кодуудыг хадгалдаг Working Directory буюу ажлын хавтас хоёр дахь нь Index буюу бэлтгэлийн талбар (staging area), харин сүүлийнх нь хамгийн сүүлд хийгдсэн өөрчлөлтийг зааж байдаг HEAD.

нэмээд & хадгалах

add & commit

Өөрчлөлтүүдээ багцалж хадгалахад бэлтгэх (Index-т нэмнэ)
git add <filename>
git add *
Энэ бол гитийн ерөнхий ажиллагааны горим юм. Эдгээр өөрчлөлтөө хадгалж баталгаажуулахын тулд дараах командыг ашиглана.
git commit -m "Commit message"
Одоо өөрчлөгдсөн файл маань локал агуулахын HEAD-д хадгалагдсан ч, сэрвэр дахь агуулахад тань арай л хадгалагдаагүй байгаа гэсэн үг.

өөрчлөлтүүдээ түлхэж оруулах (push)

Одоогоор таны хийсэн өөрчлөлтүүд локал ажлын хавтасны HEAD-д хадгалагдсан байгаа. Эдгээрийг сэрвэр дээрх агуулахад нэмж түлхэн оруулахын тулд дараах командыг ажиллуул
git push origin master
Дээрх master гэдгийг өөрийн түлхэн оруулах гэж байгаа аль ч мөчир(branch)-н нэрээр солих боломжтой.

Та өөрийн үүсгэсэн локал агуулахдаа сэрвэрийн (remote) агуулах нэмэхийн тулд, дараах командыг
git remote add origin <server>
Үүний дараа та өөрийн хийсэн өөрчлөлтийг сэрвэрийн агуулахруу түлхэн оруулах боломжтой болно.

мөчирлөлт - branching

Мөчирүүдийг ашиглан бусдаасаа тусгаарлагдсан шийдлүүдийг хөгжүүлдэг. master хэмээх мөчир бол Гитийн "default" мөчир болж үүсдэг. Бусад мөчирүүдэд тусгайлсан хөгжүүлэлтүүдээ хийж дуусгаад Мастер мөчиртөө нэгтгэдэг.

"feature_x" нэртэй шинэ мөчир үүсгээд түүнрүүгээ шилжихийн тулд
git checkout -b feature_x
буцаад мастерлуу очихдоо
git checkout master
харин мөчирийг устгахдаа дараах командыг ашиглана
git branch -d feature_x
Сэрвэр дэх агуулахруу өөрийн локал мөчирийг түлхээгүй л бол таны мөчир бусад хүмүүст харагдахгүй
git push origin <branch>

шинэчилж & нэгтгэх

локал агуулахаа сэрвэр дээрх хамгийн сүүлийн өөрчлөлтөөр шинэчлэхийн тулд
git pull
командыг ажиллуулж ажлын хавтастаа шинээр нэмэгдсэн өөрчлөлтүүдийг fetch (таталт) хийж нэгтгэнэ (merge).
ямар нэг өөр мөчирийг одоогийн идэвхтэй мөчиртэй (ж.нь. master) нэгтгэхийн тулд дараах командыг ашиглана
git merge <branch>
Энэ хоёр тохиолдолд гит автоматаар өөрчлөлтүүдийг нэгтгэх үйлдлийг хийхийг оролддог. Гэвч, тэр болгон асуудалгүй нэгтгэгдээд байдаггүй бөгөөд өөрчлөлтүүд нь зөрчилдөх тохиолдол ихээр гардаг. Хэрвээ зөрчилдөөн (conflicts) гарвал та өөрийн биечлэн тухайн файлыг гит-н зааж өгсөнчлөн засаж зохицуулах шаардлагатай болно. Засвар хийсний дараа, үүнийгээ нэгтгэсэн болохыг тэмдэглэнэ
git add <filename>
эцсийн байдлаар нэгтгэл хийхийн өмнө юу юу өөрчлөгдсөнийг дараах командыг ашиглан хянаж болно
git diff <source_branch> <target_branch>

tagging

Програмын хувилбар гаргах бүртээ tag үүсгэж байх нь зүйтэй. Өргөнөөр хэрэглэгдсээр ирсэн заншил. SVN-д ч мөн хэрэглэгддэг. Та 1.0.0 хэмээх tag-г дараах командаар үүсгэнэ
git tag 1.0.0 1b2e1d63ff
энд байгаа 1b2e1d63ff гэх үсэг тооны цуглуулга нь таны tag-лах гэж байгаа коммит (багц хадгалалт)-н дугаарын эхний 10 тэмдэгт. Коммитийн дугаарыг лог бүртгэлээс харах боломжтой...

log бүртгэл

хамгийн энгийн бүртгэлийг дараах командаар үзнэ.. git log
Үүн дээр янз бүрийн нэмэлт параметр өгснөөр илүү дэлгэрэнгүй эсвэл өөрийн хүссэн хэлбэрээр харах боломжтой. Зөвхөн заасан хөгжүүлэгчийн хийсэн коммитуудыг харахдаа:
git log --author=bob
Товч лог буюу нэг мөрөнд багтаасан бүргэлийг үзэх бол:
git log --pretty=oneline
Эсвэл бүх мөчирүүдийн түүхийг мөчир, tag-уудын нэртэйгээр нь ASCII зургаар харахыг хүсвэл:
git log --graph --oneline --decorate --all
Зөвхөн өөрчлөлт орсон файлуудыг харах бол:
git log --name-status
Зөвхөн хэдхэн жишээг харуулахад л ийм байна. Өөр олон хэлбэрээр лог бүртгэлийг харах боломжтой. Илүү дэлгэрэнгүйг дараах командыг ашиглан сонирхоорой git log --help

локал өөрчлөлтүүдээ буцаах

Хэрэв та ямар нэг байдлаар алдаа гаргаж (алдах тохиолдол гардаггүй л байлгүй ;) түүнийгээ буцаахыг хүсвэл хийсэн локал өөрчлөлтүүдээ дараах командаас буцааж болно
git checkout -- <filename>
энэ команд хамгийн сүүлд HEAD-н зааж буй коммит-д хадгалагдсан файлын агуулгаар таны ажлын хавтсан дахь локал файлыг солих болно. Индекст аль хэдийн нэмэгдсэн өөрчлөлтүүд, шинэ файлууд хэвээр үлдэнэ.

Харин хийсэн бүх өөрчлөлт, коммитуудаа хаяаад сэрвэрээс дахин таталт хийж өөрийн локалын мастер мөчирөө сэрвэртэй тэнцүүлэх бол ингэнэ
git fetch origin
git reset --hard origin/master

хэрэгтэй мэдээллүүд

гит-н өөрийнх нь GUI
gitk
өнгөөр ялгасан гит командын гүйцэтгэл харах
git config color.ui true
коммит болгоны лог бүртгэлийг үргэлж нэг мөрөөр харуулах
git config format.pretty oneline
өөрчлөгдсөн файлуудыг интерактив байдлаар нэмэх
git add -i

links & resources

график интерфэйстэй програмууд

Зааврууд

тусламж авах

сэтгэгдэл