مشخصات مقاله
-
488
-
0.0
-
10128
-
0
-
0
Clone کردن از GitHub
Git Clone از مخزن های GitHub
Clone کردن یک مخزن Fork شده از GitHub
در این مرحله مخزن fork شده مان تنها در GitHub موجود است. اما قصد داریم آن را در local Git خود clone کنیم تا بتوانیم بر آن تغییرات ایجاد کنیم.
Clone یک کپی کامل از repository، شامل تمامی فایل های logging و نسخه ها، میباشد.
به repository اصلی رفته و بر کلید سبز رنگ “Code” کلیک کنید را یک URL برای clone دریافت کنید:

Git bash خود را باز کنید و repository را clone کنید:
git clone https://github.com/w3schools-test/w3schools-test.github.io.git
Cloning into 'w3schools-test.github.io'...
remote: Enumerating objects: 33, done.
remote: Counting objects: 100% (33/33), done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 33 (delta 18), reused 33 (delta 18), pack-reused 0
Receiving objects: 100% (33/33), 94.79 KiB | 3.16 MiB/s, done.
Resolving deltas: 100% (18/18), done.
به file system خود نگاهی بیندازید، خواهید دید که یک directory جدید با نام پروژه clone شده تان موجود است:
ls
w3schools-test.github.io/
برای clone کردن در فولدری مشخص، نام فولدر را پس از URL قرار دهید: مثلا
git clone https://github.com/w3schools-test/w3schools-test.github.io.git myfolder
به directory جدید بروید و وضعیت را بررسی کنید:
git clone https://github.com/w3schools-test/w3schools-test.github.io.git myfolder
و log را بررسی کنید تا از وجود تمامی داده های repository اطمینان حاصل کنید:
git log
commit facaeae8fd87dcb63629f108f401aa9c3614d4e6 (HEAD -> master, origin/master, origin/HEAD)
Merge: e7de78f 5a04b6f
Author: w3schools-test Date: Fri Mar 26 15:44:10 2021 +0100 Merge branch 'master' of https://github.com/w3schools-test/hello-world commit e7de78fdefdda51f6f961829fcbdf197e9b926b6 Author: w3schools-test Date: Fri Mar 26 15:37:22 2021 +0100 Updated index.html. Resized image .....
حالا یک کپی کامل از repository اصلی را در اختیار داریم.
تایید Remote ها
در این مرحله ما یک کپی کامل از یک repository داریم، اما اجازه ایجاد هیچ گونه تغییری در repository اصلی نداریم.
remote های این Git به این شکل است:
git remote -v
origin https://github.com/w3schools-test/w3schools-test.github.io.git (fetch)
origin https://github.com/w3schools-test/w3schools-test.github.io.git (push)
مشاهده میشود که origin ، مخزن اصلی “w3schools-test” قرار داده شده است. همچنین میخواهیم fork خود را نیز اضافه کنیم.
ابتدا باید نام origin remote را تغییر دهیم:
git remote rename origin upstream
git remote -v
upstream https://github.com/w3schools-test/w3schools-test.github.io.git (fetch)
upstream https://github.com/w3schools-test/w3schools-test.github.io.git (push)
و سپس URL، fork خود را fetch کنیم:

و آن را origin قرار دهیم :
git remote add origin https://github.com/kaijim/w3schools-test.github.io.git
git remote -v
origin https://github.com/kaijim/w3schools-test.github.io.git (fetch)
origin https://github.com/kaijim/w3schools-test.github.io.git (push)
upstream https://github.com/w3schools-test/w3schools-test.github.io.git (fetch)
upstream https://github.com/w3schools-test/w3schools-test.github.io.git (push)
با توجه به قرار داد های نام گذاری Git، توصیه میشود که repository خود را origin و مخزنی که fork شده است را upstream نام گذاری کنید.
حالا دو remote داریم:
- Origin - fork خودمان، که میتوانیم آن را بخوانیم و بر آن بنویسیم
- upstream - مخزن اصلی، که تنها میتوانیم آن را بخوانیم
در مقاله بعد به سراغ ایجاد تغییرات در کد رفته و به شما می آموزیم که چگونه این تغییرات را برای repository اصلی نیز پیشنهاد کنید.