Git masofaviy repozitoriydan pull

Git GitHub’dan pull qilish


ULASHISH

Masofaviy repozitoriydan pull qilish

Oldingi boblarda GitHub’da hisob yaratdik va SSH’ni sozladik.

So‘ng to‘g‘ridan-to‘g‘ri GitHub’da ba’zi o‘zgarishlar kiritdik.

Endi lokal repozitoriyimizni GitHub’dagi o‘zgarishlar bilan yangilamoqchimiz.


Asosiy pull buyruqlari


Fetch, pull va merge

Loyiha ustida jamoa bo‘lib ishlaganda, hamma eng so‘nggi o‘zgarishlardan xabardor bo‘lib turishi muhim.

Loyiha ustida ishlashni boshlaganingizda har safar eng so‘nggi o‘zgarishlarni lokal nusxangizga olishingiz kerak.

Git’da buni pull yordamida qilishingiz mumkin.

pull — 2 ta turli buyruqning birikmasi:

  • fetch
  • merge

Keling, fetch, merge va pull qanday ishlashini batafsil ko‘rib chiqaylik.


Git Fetch

git fetch masofaviy repozitoriydan yangi ma’lumotlarni yuklab oladi, lekin ishchi fayllaringiz yoki branch’laringizni o‘zgartirmaydi. U merge yoki pull qilishdan oldin boshqalar nimani push qilganini ko‘rish imkonini beradi.

Misol

git fetch origin
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 733 bytes | 3.00 KiB/s, done.
From https://github.com/w3schools-test/hello-world
   e0b6038..d29d69f  master     -> origin/master

Endi so‘nggi changes bizda, shuning uchun status buyrug‘i orqali holatni tekshirishimiz mumkin:

Misol

git status
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean

Biz origin/master’dan 1 ta commit ortda qolyapmiz. Bu yangilangan README.md bo‘lishi kerak, lekin keling, log’ni ko‘rib, yana bir bor tekshiraylik:

Misol

git log origin/master
commit d29d69ffe2ee9e6df6fa0d313bb0592b50f3b853 (origin/master)
Author: w3schools-test <77673807+w3schools-test@users.noreply.github.com>
Date:   Fri Mar 26 14:59:14 2021 +0100

    Updated README.md with a line about GitHub

commit e0b6038b1345e50aca8885d8fd322fc0e5765c3b (HEAD -> master)
Merge: dfa79db 1f1584e
Author: w3schools-test <test@w3schools.com>
Date:   Fri Mar 26 12:42:56 2021 +0100

    merged with hello-world-images after fixing conflicts

...
...

Bu kutilganidek ko‘rinadi, lekin lokal master va origin/master o‘rtasidagi farqlarni ko‘rsatish orqali ham tekshirishimiz mumkin:

Misol

git diff origin/master
diff --git a/README.md b/README.md
index 23a0122..a980c39 100644
--- a/README.md
+++ b/README.md
@@ -2,6 +2,4 @@
 Hello World repository for Git tutorial
 This is an example repository for the Git tutoial on https://www.w3schools.com

-This repository is built step by step in the tutorial.
-
-It now includes steps for GitHub
+This repository is built step by step in the tutorial.
\ No newline at end of file

Bu aynan kutilganidek! Endi xavfsiz tarzda merge qilishimiz mumkin.



Git Merge

merge joriy branch’ni ko‘rsatilgan branch bilan birlashtiradi.

Yangilanishlar kutilganidek ekanini tasdiqladik, endi joriy branch’imizni (master) origin/master bilan birlashtirishimiz mumkin:

Misol

git merge origin/master
Updating e0b6038..d29d69f
Fast-forward
 README.md | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Eng so‘nggi holatda ekanimizni tasdiqlash uchun status buyrug‘ini yana ishga tushiramiz:

Misol

git status
On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

Mana! Lokal git’ingiz eng so‘nggi holatda!


Git Pull

Lekin agar barcha bu qadamlarni bosib o‘tmasdan, shunchaki lokal repozitoriyingizni yangilamoqchi bo‘lsangiz-chi?

pull — fetch va merge buyruqlarining birikmasi.

U masofaviy repozitoriydagi barcha o‘zgarishlarni siz ishlayotgan branch’ga tortib olish (pull) uchun ishlatiladi.

GitHub’dagi Readme.md fayliga yana bir o‘zgartirish kiriting.

GitHub Update Readme

Lokal Git’imizni yangilash uchun pull buyrug‘idan foydalaning:

Misol

git pull origin
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 794 bytes | 1024 bytes/s, done.
From https://github.com/w3schools-test/hello-world
    a7cdd4b..ab6b4ed  master       -> origin/master
Updating a7cdd4b..ab6b4ed
Fast-forward
  README.md | 2 ++
  1 file changed, 2 insertions(+)

Lokal Git’ingizni masofaviy repozitoriy asosida shu tarzda dolzarb holatda saqlaysiz. Keyingi bobda push GitHub’da qanday ishlashini batafsil ko‘rib chiqamiz.




W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!