پوختەیەک دەربارەی چۆنیەتی ئیش بە گیت و گیتهاب(بەشی یەکەم)
Oct 26, 2020
6 خولەک
1139 وشە
تــاگ: سەرچاوەکراوە
هاوبەشی بکە:

پێشەکی:

گیت و گیت‌هاب(گیت‌هەب) وشانی باو لە نێو گەشەپێدەرانن، سەرەتا دەبێ واتای سەرەتایی کارپێکردنیان بزانین.پێم وایە بێژین کە ئەم سیستەمە، تۆڕێکی کۆمەڵایەتی بۆ گەشەپێدەرانە کە دەتوانن کۆدەکانیان لەو شوێنە هاوبەش بکەن زۆر بەهەڵە نەچووین. هەر چەند ئەم مانا ئێستا ژینگەی دەرەوەی گەشەپێدەران و بەرنامە داڕێژەران دەگرێتەوە.بۆ نموونە کاتێک کە ئێسنۆدای هاککەر بەڵگە نهێنییەکانی سوپای ئەمریکای بڵاو کردەوە، دادگا بڕیاری دا بەشێکی زۆر لە بەڵگەکان و نەرمەکالاکانی لە سەر گیت‌هاب بڵاو بکاتەوە.یان چەند نووسەر کە لەسەر چیرۆکێک ئیش دەکەن دەتوانن لە گیتهاب سوود بگرن بۆ تەواو کردنی نووسینەکەیان.

۱- گیت ‌لە گیتهاب

گیت سیستەمی چاودێری وشانی سەرچاوەکراوە یان کۆد کراوەیە کە لە لایەن خولقێنەری لینوکس، لینوس ترۆڤاڵدز دروست کرا.ئەمەش کانگای سیستەمی کارگێڕی لینوکسە. ئەم سیستەمە وەک زۆربەی سیستەمەکانی چاودێری وشان بۆ نمونە: ساب‌وێرژێن،CVS و مێرکۆریاڵ ــە.

پرسیار لێرەیە کە سیستەمەی چاودێری وشان چییە ؟

بڕاوانن کاتێک کە پەرەپێدەران ئەپێکی نوێ دروستدەکەن،هەمیشە گۆڕانکاری لە کۆدەکانیان دەدەن تا یەکەمین وشانی فەرمی بۆ بڵاوکردنەوە ئامادە بکەن.ئەم قۆناغانە لە دەستکاری بۆ وشانی دیکەش بەردەوامە.

سیستەمەکانی چاودێری وشان گۆڕانکاری و دەستکارییەکانی گەشەپێدەران لە کانگایەکی ناوەندی پاشکەوت دەکەن؛ ئەمەش هاوکاری لە نێو گەشەپێدەران سادە دەکا، واتە هەر گەشەپێدەر دەتوانێت وشانی نوێ دابگرێت،گۆڕانکاری تێدا ئەنجام بدات و ئینجا باری بکا.تەواو گەشەپێدەران بۆیان هەیە لە گۆڕانکارییەکان، داگرتنەکان ببینن و بەشدار بن لە پرۆژەکە.

هەروەها ئەو کەسانە کە هیچ ڕۆلێکیان لە پرۆژەکەش نییە ،دەتوانن لە گیتهاب دایبەزێنن و سوودی لێوەرگرن.ئەو بەکارهێنەرانی لینوکس زۆر بە ئاسانی لەگەڵ ئەمە ئاشنا هەن.

۱-۱- هاب لە گیت‌هاب:

دەتوانین بڵێن سیستەمی چاودێری وشان کە دڵخوازی زۆربەی گەشەپێدەرانە، بۆ ئەوە کە تایبەتمەندی فرەتری بەبەراوەرد لە گەڵ سیستەمەکانی هاوشێوەی هەیە کە لە سەرەوە ئاماژەمان پێدا. بۆ نمونە لە پاشکەوتی گۆڕانکاری پەڕگەکان باشتر کارایە.

لە جیهانی کۆمپیوتر، هاب بە ئامێرە ڕەقەکالاکان دەوترێت کە بەیارمەتی لە هاوبەشکردنی تۆڕ بۆ گەجێتەکان سوودی لێدەگیرێت؛ بە جۆرێک هاب تۆڕ بەربڵاو دەکاتەوە.هاب لە گیت‌هابیش ئەم واتا دەگەیێنێت.گەشەپێدەران پرۆژەکانیان لە گیتهاب پاشکەوت دەکەن و لگەڵ خێڵێکی گەورە لە تۆڕی گەشەپێدەرانی جیهان دەبەسترێنەوە.لە گیت‌هاب دەتوانرێت پرۆژەیەک ڕوونووس بکرێت و لە کانگایەکی دیکە دابنرێت و پاش گۆڕانکارییەکان بدرێتەوە بە خاوەنی ئەسڵێ پڕۆژەکە بۆ پەسەند کردنی، بێ ئەوە کە کانگای ئەسڵی خاوەنی پڕۆژەکە شتێکی لێبێت.تەنانەت توانایی نووسینی پرسیار و وڵام لەم تۆڕی گیتیش ڕێگە پێدراوە.

۲-۱- فێرکاری ئیش کردن بە گیت :

۲-۲-۱- پێداویستییە سەرەتاییەکان :

سەرەتا دەبێ وشانی گیت بە پێی سیستەمی کارگێڕییەکەتان دابگرن و دایمەزرێنن،دەتوانن سەردانی ئێرە بکەن. لە لینوکس و ماکیش دەتوانن لە رێگەی هێڵی فەرمان زۆر بە ئاسانی لە رێگای بەڕێوەبەری پاکەتەکان دایمەزرێنن بۆ نموونە لە لینوکس بەم فەرمانە :

sudo apt install git

ئێستا بوخچەیەک دروستدەکەین کە کۆدەکان و پەڕگەی README تێدا دادەنین. ئینجا کردارە ئاساییەکان وەک init، clone ،commit و diff لە سەری ئەنجام دەدەین.

۳-۲-۱ - دروستکردنی کانگایەک (Repository)

پێش ئەوە بە گیت ئیش بکەین دەبێ ئەو بوخچە وا دروستمان کرد، کانگایەکی لەسەر هەڵگرسێنین تا بە یارمەتی گیت بەڕێوەی ببەین. ترمیناڵ بکەنەوە بچنە نێو بوخچەی پرۆژەکەتان(بوخچەی پرۆژەی من yapraxeــە) ئینجا فەرمانی git initــی تێدا بنووسن.

qezwan@gnu:~/yaprax$ git init
Initialized empty Git repository in /home/qezwan/yaprax/.git/

بەم فەرمانە دایرێکتۆریێکی نهێنی(لە ویندۆز بوخچەیەکی شاراوە) بە ناوی git. لە نێو بوخچە یان دایرێکتۆری پڕۆژەکەم (yaprax) دروستدەکرێت.ئەم دایریکتۆرییە هەر ئەو شوێنەیە کە گیت ڕێکخستن و سازدانەکانی خۆی تێدا پاشکەوت دەکا تا ئاگای لە گۆڕانکارییەکانی ئێوە بێت.

۲-۱-٤- کلۆن یان ڕوونووسکردن(Clone)

ڕێگایەکی دیکە بۆ دەستپێگەیشتن بە کانگا هەیە کە بە کلۆنینگ یان ڕوونووس ناسراوە. بەم فەرمانە ڕوونووسێکی تەواو لە کانگا دەگوازرێتەوە سەر سیستمەکەتان، ئینجا دەتوانن گۆڕانکاری دڵخوازتانی تێدا جێبەجێ بکەن.شێوەی فەرمان بەم جۆرەیە:

git clone <repository URL>

کاتێك لەم کانگا کە ڕوونووستان کرد گۆڕانکاری و دەستکاری دەدەن دوو وشە دێتە ئارا:

  1. staging : جێبەجێکردنی کاتی گۆڕانکارییەکان بێ ناردنە نێو کانگای ئەسڵێ
  2. commit : جێبەجیکردنی گۆڕانکاری بۆ نێو کانگای ئەسڵی یان کەمیت

۳-۱- زیادکردنی پەڕگەی نوێ :

لەم قۆناغە دەتوانین هەر زمانێکی بەرنامەداڕشتنمان بەدڵ بوو بۆ دروستکردنی پەڕگە سوودی لێبگرین وەک(php,go,paython,rubu,json,html,…)لێرە پەڕگەیەکی index.html دروستدەکەین.

پاش پاشکەوتکردنی پەڕگەکەمان لە دایرێکتۆری پرۆژەکەمان، فەرمانی git status لەترمیناڵ‌دەنووسین.ئەم فەرمانە دۆخی کانگاکەی ئێوە نیشان دەدا.دەرئەنجامی فەرمانەکەی سەرەوە دەبێت وەک خوارەوە دەرکەوێت، کە پەڕگەیindex.html هێشتا پێداچوونەوەی بۆ نەکراوە واتە پەڕگەیەکی (untracked)ــە و بە ڕەنگی سوور نیشان دەدرێن.

ئێستا من پەڕگەیەکی دیکە بەناوی README.md دروستدەکەم کە دەتوانن زانیاری یان پێناسەی پڕۆژەکەتانی تێدا بنووسن وەک ناو و ناونیشانی ئێلێکترۆنی خۆتان، ناوی پرۆژەکەتان، مۆڵەتدانی پرۆژەکە و رێنمایی سوود وەرگرتن لە پرۆژەکە و … هتد.

بەهرحاڵ ئێستا فەرمانی git status دووبارە دەکەم، دەبینن کە دوو پەڕگەم هێشتا پێداچوونەوەیان بۆ نەکراوە واتە لە دۆخی (untracked) ماون.

ئێستا من گەرەکمە لە سەر پەڕگەی index.html ستەیج (stage) ئەنجام بدەم؛ واتە گۆڕانکارییەکانی پاشکەوت کراوە بەڵام هێشتا نەخراوەتە نێو کانگای ئەسڵی[ ستەیجینگ وەک بۆشایێک وایە کە پەڕگە دەخرێتە نێوی بەڵام توانایی دەستێوەردانی هەر هەیە؛ قۆناگێک پاش کەمیتە. ئێستا بۆ ئەم مەبەستە فەرمانی

git add index.html

جێبەجێ دەکەم. گەر فەرمانی git status لێبدەینەوە دەبینین پەڕگەیindex.html چاوەڕوانی پەسەندکردنەوە لە دۆخی (changes to be commited) خۆی جێگیر کردووە. بەڵام پەڕگەی README.md هێشتا لە بەشی Untracked files چاوەڕوانە

۱-٤- ڕێکخستنەکان

ئێستا هەموو شتێک ئامادەی پەسەندکردن یان ( commit)ــە؛ بەڵام سەرەتا دەبێ ئەو دەستکاریکەرەی کە گیت بۆ نووسینی پێداچوونەکان سوودی لێدەگرێت ڕێکیبخەین. گەر لە لینوکس سوود دەگرن پێشگریمانە لە دەستکاریکەرەکانی pico، vi، vim یا emacs سوود دەگرین.گەر بەم دەستکاریەکەرانە ئاشناییت نییە دەتوانیت بیانگۆڕیت بە دەستکاریکەرەکانی Notepad ،TextEdit ، Gedit و … هتد.بۆ ئەم مەبەستە لە ترمیناڵ‌کۆدی خوارەوە بنووسن:

git config --global core.editor <your app's name>

لە کۆتایی هێڵەکە لە شوێنی your app’s name ناوی دەستکاریکەری دەقی دڵخوازی خۆتان بنووسن.بۆ ئەوەی کە یەکەم بار فەرمانی commit لێدەدەن واتە git commit ئەم پەڕەگە دەکرێتەوە[دەستکاریکەری ئێمە لێرە Vimــە]

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
#
# Initial commit
#
# Changes to be committed:
#       new file:   index.php
#
# Untracked files:
#       README.md
#

پەیامێکی کەمیتی باش نابێ زۆرتر لە ۷۲ نووسە بێت. بۆ ئەوە گەشەپێدەران بزانن لەسەر پەڕگە چ جۆر دەستکاری کراوە، هەرچەندە دەتوانن نەینووسن. بۆ نموونە من بەم جۆرە کەمیت دەنووسم:

git commit -m "added index.html"

لێرە m واتە پەیام massege ئینجا پەیامەکە لە نێو تەکخاڵ یان جووتخاڵ‌ دەنووسرێت. :)

۱-٤-۱- پیشاندانی رێکخستنەکان

دەتوانم بێژم کە فەرمانی git diff بەناوبانگترین فەرمانە لە گیت‌، کە هەر وەک فەرمانی Linux diff دوو پەڕگە بەیەکەوە هەڵدەسەنگێنێت. بۆ نموونە لەخوارەوە دەزانم کە گۆڕانکاری نوێ لە سەر پەڕگەی index.html چۆن ئەنجام دراوە:

git diff index.html

کە دەرئەنجامی ئەم فەرمانە پاش نووسینی بەم جۆرەیە:

هێمای کەم (-) واتە شتێک لە پەڕگە گۆڕدراوە یان لابراوە . هێما یان نیشانەی (+) واتە شتێک بە پەڕگەکە زیاد بووە.

گەر پێتان خۆشە کە گۆڕانکارییەکانی ستەیج بوو، ببینن دەتوانن فەرمانی خوارەوە بنووسن

git diff --cached index.html

خاڵ :

کەمیت(commit) واتە تۆمارکردنی ڕووداوەکانی گۆڕدراوە بە بەراوەرد لەگەڵ دوایین گۆڕانکارییەکان. واتە ئێوە گۆڕانکاریێک لە پەڕگەتان داوە و بە گیت دەڵێن کە ئەو گۆڕانکارییەی ئێوە ئارشیڤ بکات واتە بایگانی بکات. کەمیت گۆڕانکارییەکانی پرۆژەکەتان لە هەر قۆناغێک هەڵدەگرێت کە هەر کات پێتان خۆش نەبوو کە گۆڕانکارییەکان پەسەند بکەن بێنەوە سەری،ئەمەش دەتوانێت چەندین قۆناغ لە دواوتر بێت.

بۆ زیادکردنی پەڕگەیەک بە کەمیت دەبێت سەرەتا زیادی بکەن لە ژینگەی ستەیج کە هەروا کە ئاماژەمان پێی کرد لەفەرمانی <git add <filename سوود دەگرین پاش ئەمە فەرمانی git commit لێدەدەین بۆ نێو کانگا.