گيت هاب چيست؛ يادگيري ساخت اكانت و كار با Github
اگر بهعنوان متخصص اندرويد حداقل يك بار سراغ رام كاستوم رفته باشيد، محال است نام گيتهاب (Github) را نديده باشيد. تقريبا تمام توسعهدهندگان اندرويد از اين سرويس براي انتشار منابع پروژههاي خود استفاده ميكنند؛ اما بسياري از متخصصان در مواجهه با گيتهاب، بخشها و اصطلاحات آن سردرگم ميشوند. در اين مقاله به چيستي گيت، گيتهاب و نحوهي كار با آنها ميپردازيم.
اسم گيتهاب از دو بخش گيت و هاب تشكيل شده است. در زير هركدام را بهصورت جداگانه مطالعه ميكنيم.
- گيت در گيتهاب
- هاب در گيتهاب
- ساخت اكانت در گيت هاب
- مرحله اول: به وبسايت Github برويد
- مرحله دوم: مشخصات خود را وارد كنيد
- مرحله سوم: آدرس رايانامه خود را تاييد كنيد
- مرحله چهارم: انتخاب طرح يا نقشه
- مرحله پنجم: ساخت حساب متخصصي خود را تكميل كنيد
- يادگيري كار با گيت
- نيازهاي بنيادي
- راهاندازي يك مخزن (Repository)
- كلون يا كپي كردن يك مخزن
- افزودن فايل جديد
- تنظيمات
- اعمال اولين تغيير
- مشاهدهي تغييرات
- نكات مهم دربارهي استيجينگ يا ايندكس
- برنچينگ يا شاخهبندي
- يادگيري كار با گيت هاب
- گام اول: ساخت مخزن يا Repository
- گام دوم: ساخت شاخه يا Branch
- گام سوم: ايجاد تغييرات و اعمال آنها
- گام چهارم: ايجاد درخواست اعمال تغييرات يا pull request
- گام پنجم: پذيرش درخواست تلفيق تغييرات اعمالشده
- اصطلاحات مهم در گيت هاب
- اتصال به گيتهاب
- سخن پاياني
گيت در گيتهاب
براي درك نحوه كار با گيتهاب، ابتدا بايد با گيت آشنا شويم. گيت يك سيستم كنترل نسخهي متن باز است كه توسط خالق لينوكس، لينوس تروالدز، ساخته شد. گيت مانند ساير سيستمهاي كنترل نسخه از قبيل سابورژن، CVS و مركوريال است؛ اما اساسا سيستم كنترل نسخه چيست؟ وقتي توسعهدهندگان چيز جديدي مانند يك اپليكيشن خلق ميكنند، مدام تغييراتي در كدهاي آن ميدهند تا اولين نسخهي رسمي و غير بتا آمادهي انتشار شود. اين روند در بهروزرساني براي نسخههاي بعدي نيز ادامه دارد.
سيستمهاي كنترل نسخه تغييرات و بازنگريهاي توسعهدهندگان را در يك مخزن مركزي ذخيره ميكنند. با اين كار همكاري بين توسعهدهندگان آسان ميشود؛ به اين شكل كه هر توسعهدهنده ميتواند نسخهي جديد را دانلود كند، تغييرات را در آن اعمال و سپس آپلود كند. كليهي توسعهدهندگان قادر به مشاهدهي تغييرات جديد، دانلود آنها و مشاركت در پروژه خواهند بود.
همچنين، كساني كه نقشي در پروژه ندارند، ميتوانند فايلهاي آن را دانلود و استفاده كنند. متخصصان حرفهاي لينوكس احتمالاً با اين روند آشنايي كامل دارند؛ چرا كه استفاده از گيت، سابورژن و سرويسهاي مشابه از ملاخبار تخصصيات كامپايل كردن يك برنامه از سورسكد آن است.
هاب در گيتهاب
هاب سيستم كنترل نسخهاي است كه توسط اكثر توسعهدهندگان ترجيح داده ميشود؛ زيرا نسبت به ساير سيستمها برتريهايي دارد. مثلا در ذخيرهي تغييرات فايلها بهتر عمل ميكند. در بخشهاي بعدي اين مقاله به نحوهي كار با گيت خواهيم پرداخت.
در دنياي رايانه، هاب به تجهيزات سختافزاري گفته ميشود كه از آن براي اشتراكگذاري شبكه با گجتهاي مختلف استفاده ميشود و در نتيجه هاب به نوعي شبكه را گسترش ميدهد. هاب در گيتهاب نيز چنين مفهومي دارد. توسعهدهندگان پروژههاي خود را در گيتهاب ذخيره ميكنند و از اين طريق به شبكهي عظيم توسعهدهندگان دنيا وصل ميشوند. در گيتهاب اين امكان وجود دارد كه پروژهاي را از مخزن توسعهدهنده به مخزن خود كپي و در آن تغييرات اعمال كنيد و سپس درخواست اعمال تغييرات را به صاحب پروژه بفرستيد تا در پروژهي اصلي اعمال كند. امكان پرسش و پاسخ نيز در اين شبكهي گيت فراهم است.
حالا كه با مفاهيم گيت و گيتهاب آشنا شديم به نحوهي كار با اين سرويسها ميپردازيم اما ابتدا نياز است تا در سرويس گيتهاب براي خود حساب متخصصي ايجاد كنيد.
ساخت اكانت در گيت هاب
مرحله اول: به وبسايت Github برويد
اولين قدم اين است كه با تايپ "github.com" در نوار آدرس مرورگر خود، به وبسايت GitHub برويد. پس از ورود به وبسايت، دكمه نام نويسي (Sign up) را در گوشه سمت راست بالاي صفحه مشاهده خواهيد كرد.
مرحله دوم: مشخصات خود را وارد كنيد
پس از كليك روي دكمه Sign up و به صفحهاي هدايت ميشويد كه بايد مشخصات خود را وارد كنيد و از شما خواسته ميشود نام متخصصي، آدرس رايانامه و رمز عبور خود را ارائه دهيد. اطمينان حاصل كنيد كه يك نام متخصصي منحصربهفرد انتخاب كرده تا آن را به راحتي به خاطر بسپاريد. آدرس رايانامه شما بايد آدرسي معتبر باشد زيرا گيتهاب براي فعال كردن حساب شما يك رايانامه تأييد براي شما ارسال خواهد كرد.
مرحله سوم: آدرس رايانامه خود را تاييد كنيد
پس از وارد كردن مشخصات خود، گيتهاب براي تأييد حساب، رايانامهي براي شما ارسال ميكند. صندوق ورودي (Inbox) خود را مطالعه و روي لينك تأييد ارائه شده در رايانامه كليك كنيد. اگر رايانامه را دريافت نكرديد، پوشه اسپم (Spam) خود را نيز مطالعه كنيد.
مرحله چهارم: انتخاب طرح يا نقشه
هنگامي كه آدرس رايانامه خود را تأييد كرديد، از شما خواسته ميشود يك طرح را انتخاب كنيد. گيتهاب سه طرح را ارائه ميدهد كه شامل گزينههاي رايگان، تيمي و سازماني است. طرح رايگان براي توسعهدهندگاني مناسب است كه ميخواهند از گيتهاب براي پروژههاي شخصي خود استفاده كنند. طرح تيمي نيز براي تيمهايي است كه ميخواهند در پروژهها همكاري كنند، در حالي كه طرح سازماني براي سازمانهاي بزرگ با الزامات پيچيده است.
مرحله پنجم: ساخت حساب متخصصي خود را تكميل كنيد
پس از انتخاب يك طرح، به داشبورد حساب خود در گيتهاب منتقل خواهيد شد. در اينجا، ميتوانيد با افزودن عكس نمايه، توضيحاتي راجب خود و ساير جزييات، حساب متخصصي خود را سفارشي كنيد. تكميل نمايه شما به توسعهدهندگان ديگر كمك ميكند شما را پيدا كنند و در پروژهها با شما همكاري كنند.
اكنون مراحل ساخت اكانت در گيتهاب به پايان رسيد و در ادامه به راحتي ميتوانيد رايانامهي را كه براي ساخت اكانت خود استفاده كرديد، در پلتفرم گيت نيز وارد كنيد.
يادگيري كار با گيت
نيازهاي بنيادي
قبل از هرچيز لازم است مواردي را نصب كنيد. براي اينكار نسخهي متناسب با سيستمعامل خود را از اينجا دانلود و نصب كنيد. اگر از لينوكس استفاده ميكنيد، از طريق پكيج منيجر نيز ميتوانيد اقدام كنيد.
در مرحلهي بعد، از آنجايي كه در روند يادگيري، يك مخزن شامل يك كد و يك README خواهيم ساخت، يك دايركتوري براي آن در انديشه متخصصين بگيريد.
پس از آن، به عمليات معمولي نظير init، كلون، كاميت و diff ميپردازيم. البته، عمليات پيشرفتهتري نيز وجود دارد كه در مراحل اوليه نيازي به آنها نخواهيد داشت.
راهاندازي يك مخزن (Repository)
قبل از شروع كار با گيت، بايد يك مخزن پروژه راهاندازي كنيد تا به كمك گيت آن را مديريت كنيد. ترمينال را باز كنيد و در دايركتوري پروژهي خود دستور . git init را وارد كنيد.
با اين كار يك دايركتوري مخفي با نام git. در دايركتوري پروژهي شما ساخته خواهد شد. اين دايركتوري همان مسيري است كه گيت ديتابيس و تنظيمات خود را در آن ذخيره ميكند تا تغييرات پروژهي شما را دنبال كند.
كلون يا كپي كردن يك مخزن
راه ديگري براي دسترسي به مخزن وجود دارد كه به كلونينگ مشهور است. درست مثل مطالعه مخزن در ساير سيستمها، اجراي كد git clone يك كپي كامل از مخزن مورد انديشه متخصصين به سيستم شما منتقل خواهد كرد. سپس، ميتوانيد تغييرات دلخواه را در آن اعمال كنيد. روند اعمال تغييرات ساخت تغييرات، اعمال موقت آنها بدون وارد كردن در مخزن اصلي(staging)، اعمال تغيير در مخزن يا كاميت (commit) را شامل ميشود.
افزودن فايل جديد
در اين مرحله ميتوان از زبانهاي برنامهنويسي مختلف مانند پايتون، روبي، Go يا هر زبان ديگري استفاده كرد. ما در اين يادگيري از زبان php كه معمولتر است استفاده ميكنيم. فايلي به نام index.php را در دايركتوري خود ايجاد و كد زير را در آن وارد كنيد.
;?php print "Hello World";
بعد از ذخيرهي فايل، دستور git status را از ترمينال اجرا كنيد. اين دستور وضعيت حاضر مخزن كار شما را نشان ميدهد. نتيجهي به نمايش درآمده بايد مشابه تصوير زير باشد كه در آن index.php بهعنوان يك فايل untracked يا مطالعهنشده فهرست شده است.
حالا طرز كار با چند فايل بدون اعمال تغييرات در مخزن را مطالعه ميكنيم. براي اينكار يك فايل دوم به نام README.md بسازيد. در اين فايل جزئياتي مثل نام پروژه، نام و نشاني رايانامه خود را وارد كنيد. دستور git status را مجددا اجرا كنيد. خواهيد ديد كه اينبار دو فايل بهعنوان مطالعهنشده فهرست شدهاند.
حالا ميخواهيم index.php را بهاصطلاح استيج (stage) كنيم. فايلي كه استيج ميشود؛ يعني تغييرات آن انجام گرفته اما هنوز در مخزن اصلي اعمال نشده است. براي اينكار دستور git add index.php را وارد كنيد. حالا، دستور وضعيت گيت (git status) را مجددا اجرا كنيد. خواهيد ديد كه index.php بهعنوان فايلي جديد در بخش تغييرات در انتظار اعمال (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 نام نرمافزار مورد انديشه متخصصين خود را وارد كنيد.
تنظيمات ديگري مانند تغيير نام و رايانامه و چگونگي نمايش پيام كاميت نيز قابل انجام است. ما در اين يادگيري از vim بهعنوان اديتور استفاده ميكنيم؛ اما شما ميتوانيد انتخاب متفاوت خود را داشته باشيد.
اعمال اولين تغيير
كاميت در گيت شباهت بسيار زيادي با كاميت در ساير سيستمهاي كنترل نسخه مانند سابورژن دارد. روند كار به اين شكل است كه كار را آغاز ميكنيد و پيامي جهت توضيح اينكه دليل تغيير انجام گرفته چيست وارد ميكنيد و فايل تغيير مييابد. پس دستور git commit را اجرا كنيد. با اين كار ويرايشگر بهصورت خودكار باز ميشود و الگوي زير را نمايش ميدهد.
# 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 status از شرايط مخزن خود آگاهي پيدا خواهيد كرد. با اينكار همواره خواهيد دانست چه تغييري را اعمال كرده و چه تغييري را هنوز اعمال نكردهايد. يك پيام كاميت خوب بايد شامل دو بخش باشد؛ اول اينكه كوتاه و در حد ۷۲ كاراكتر باشد و بهطور خلاصه تغيير اعمالشده را اعلام كند. ديگر اينكه داراي توضيحي بلندتر باشد كه بهطور مجزا در سطري ديگر جزئيات تغيير اعمالشده را توضيح دهد. البته مورد دوم اختياري است و الزامي براي نوشتن آن وجود ندارد.
ما در اين مرحله نياز به نوشتن توضيح پيچيدهاي نداريم؛ چرا كه تنها يك فايل را به مخزن اضافه كردهايم؛ اما چنانچه تغييري كه اعمال ميكنيد داراي الگوريتمهاي پيچيدهاي باشد، لازم است توضيحاتي در اين بخش براي مطالعهي ساير توسعهدهندگان بنويسيد و آنها را از چرايي اعمال اين تغيير آگاه سازيد. بنابراين، پيام سادهي زير را در ويرايشگر وارد و ذخيره كنيد و خارج شويد.
“Adding the core script file to the repository”
حالا كه تغييرات اعمال شدند. وضعيت گيت را مجددا مطالعه كنيد. خواهيد ديد كه REDME.md همچنان در قسمت untracked قرار دارد.
مشاهدهي تغييرات
در اين مرحله از آنجايي كه چند فايل در قسمت كنترل نسخه داريم و با دستورهاي پايه آشنا شدهايم، به مطالعه تغييرات ميپردازيم. براي مطالعه تغييرات اعمالشده در يك فايل از دستور git diff استفاده ميكنيم. اين دستور مشابه دستور Linux diff دو فايل را با هم مقايسه ميكند و تغييرات فايل جديدتر را نمايش ميدهد.
در اينجا براي مشاهدهي تغييرات فايل README.md دستور git diff README.md را اجرا ميكنيم. با اينكار تغييرات جديدترين نسخه نسبت به اولين نسخه به نمايش درميآيد.
به خاطر داشته باشيد كه بهطور پيشفرض، دستور git diff تغييرات را نسبت به فايل اوليه نشان ميدهد، نه فايل استيجشده. اگر ميخواهيد تغييرات استيجشده را مشاهده كنيد، دستور git diff --cached README.md را اجرا كنيد. اين دستور چيزي شبيه كد زير را به نمايش درخواهد آورد.
diff --git a/README.md b/README.md new file mode 100644 index 0000000..27c0a86 --- /dev/null +++ b/README.md @@ -0,0 +1,5 @@ +# Simple Git Project + +## Authors + +Matthew Setter
در كد نمايش دادهشده به پنج خط آخر دقت كنيد. قبل از هر سطر يك علامت + وجود دارد. اين علامت نشانگر افزودن چيزي به فايل است. در اينجا ما فقط اضافه كردهايم؛ اما اگر چيزي حذف كرده بوديم علامت منفي (-) نمايش داده ميشد.
نكات مهم دربارهي استيجينگ يا ايندكس
اگر مبتدي هستيد، يكي از گيجكنندهترين قسمتها براي شما محيط استيجينگ و رابطهي آن با كاميت خواهد بود.
كاميت در واقع ثبت سوابق تغييرات فايلها نسبت به آخرين تغيير اعمالشده است. يعني شما تغييري در مخزن خود اعمال ميكنيد و به كيت ميگوييد آن فايلها را در يك كاميت ثبت سابقه كند.
كاميتها ماهيت پروژهي شما را در مراحل مختلف حفظ ميكنند تا هر زمان كه نياز شد بتوانيد به مرحلهي قبل برگرديد.
اما چطور به گيت ميگوييد كدام فايلها را در كاميت قرار دهد؟ اينجا است كه استيجينگ يا ايندكس ايفاي نقش ميكند. براي اضافه كردن يك فايل در كاميت، ابتدا بايد آن را به محيط استيجينگ اضافه كنيد. براي انجام اين كار ميتوانيد از دستور
برنچينگ يا شاخهبندي
تا اينجا با نحوهي شروع كار و اعمال تغييرات و مطالعه آنها آشنا شديم. حالا با مفهوم پيشرفتهتري به نام شاخهبندي آشنا ميشويم. وقتي بهطور تيمي روي يك نرمافزار كار ميكنيم. آزمون و خطاهاي هر برنامهنويس روي شاخهي اصلي كدهاي يك برنامه ممكن است دردسرساز شود. گيت اين اجازه را به شما ميدهد كه شاخهي اختصاصي خود را داشته باشيد. در اين حالت، وقتي روي ساخت يك ويژگي كار ميكنيد، آزمايشهاي شما صدمهاي به شاخهي اصلي نميزند و ميتوانيد وقتي به نتيجه رسيديد، مجموعهي تغييرات اعمالشده را با شاخهي اصلي تلفيق يا merge كنيد.
تا اين بخش از يادگيري در حال كار روي شاخهي اصلي يا مستر برنچ بودهايم. شاخهي اصلي در واقع همان شاخهاي است كه بهصورت پيشفرض راهاندازي گيت با آن آغاز ميشود. اكنون قصد داريم يك شاخه به نام development (به معني توسعه) راهاندازي كنيم. از ترمينال دستور git checkout -b develop را اجرا كنيد تا شاخهاي به نام develop ساخته شود. اجراي اين دستور علاوه بر ساخت شاخهي مذكور مطالعه آن را نيز اعمال ميكند. اين شاخه در ابتدا يك كپي از شاخهي اصلي است. يعني اگر دستور git status را اجرا كنيد همان دو تغيير اعمالشده در README.md را مشاهده خواهيد كرد. حالا فرض كنيد ميخواهيم همين دو كاميت را در شاخهي اصلي تلفيق كنيم.
براي انجام اينكار ابتدا بايد مشخص كنيد كه قصد تلفيق تغييرات موجود در كدام شاخه را داريد.
پس، دستور git checkout master را اجرا كنيد. حالا بايد تغييرات را از شاخهاي كه در حال كار روي آن بودهايد در اين شاخه تلفيق كنيد. براي اينكار دستور git merge develop را اجرا كنيد.
وقتي كار تمام شد، پيامي مبني بر تغيير فايلها و خلاصه گزارشي از آن تغييرات نشان داده خواهد شد.
به همين سادگي ميتوانيد شاخه اضافه كنيد و تغييرات آن را در شاخهي اصلي اعمال كنيد. البته براي اين كار روشهاي ديگري نيز وجود دارد كه با توجه به مقدماتي بودن يادگيري به همين مقدار بسنده ميكنيم.
يادگيري كار با گيت هاب
پس از آشنايي مقدماتي با گيت وقت آن رسيده است كه به گيتهاب بپردازيم. همانطور كه گفته شد، گيتهاب چيزي فراتر از يك مخزن پروژه است. اين سرويس يكي از نسخههاي گرافيكي گيت به شمار ميرود. در واقع، اگر كار با گيت را بلد باشيد بهندرت در كار با گيتهاب به اشكال برخواهيد خورد. مسئلهي ديگر اين است كه ممكن است نخواهيد پروژهي خود را با ديگران به اشتراك بگذاريد. در اين حالت استفاده از گيت و ذخيرهي تغييرات بهصورت لوكال بهترين گزينه است؛ همچنين در استفاده از گيتهاب شما ملزم به داشتن اتصال اينترنت هستيد؛ ولي در كار با گيت چنين الزامي وجود ندارد. با تمام اين اوصاف، ممكن است بخواهيد صفر تا صد پروژهي خود را در گيتهاب انجام دهيد؛ چرا كه كار با گيت مرارتهاي خاص خود را دارد. براي مثال بايد كل منبع را دانلود كنيد، سپس ويرايشهاي خود را در قالب يك پچ تهيه كنيد و به طريقي مثل رايانامه به سازندهي اصلي بدهيد و او اين پچ را كه از سازندهي آن اطلاع دقيقي ندارد مطالعه و در صورت امكان استفاده كند. خواهيد ديد كه در گيتهاب بهعنوان يك شبكهي برخط و متن باز هيچيك از اين مرارتها وجود نخواهد داشت؛ اما قبل از شروع كار با گيتهاب نياز به آشنايي با مفاهيم خاصي است كه در زير به آنها ميپردازيم.
گام اول: ساخت مخزن يا Repository
مخزن يا repository كه به اختصار به آن repo نيز گفته ميشود ميتواند شامل فولدر، فايل، تصوير، ويديو و هر آنچه پروژهي شما به آن نياز دارد باشد. گيتهاب در ابتداي ساخت پروژه امكان افزودن README و ساير موارد مانند لايسنس را در اختيار ميگذارد.
مخزن اول شما با نام hello-world ميتواند مكاني براي ذخيره كردن ايدهها، منابع يا حتي اشتراكگذاري و مباحثه در مورد چيزهاي مختلف باشد.
- براي ساخت يك مخزن جديد در گوشهي بالا سمت راست و نزديك به آواتار يا نماد متخصصي شما، روي + و سپس New repository كليك كنيد.
- توضيح كوتاهي بنويسيد.
- در صورت تمايل به اضافه كردن README گزينهي Initialize this repository with a README را انتخاب كنيد.
- روي Creat repository كليك كنيد.
گام دوم: ساخت شاخه يا Branch
برنچينگ روشي براي كار همزمان روي نسخههاي مختلف يك مخزن است.
بهطور پيشفرض مخزن شما يك شاخه به نام master دارد كه شاخهي اصلي بهحساب ميآيد. از شاخهها براي آزمون و خطا و ويرايش كدها قبل از اعمال تغييرات در شاخهي اصلي استفاده ميشود.
وقتي يك شاخه بر پايهي شاخهي اصلي ميسازيد، يك كپي از آن با آخرين تغييراتي كه تا آن لحظه اعمالشده در شاخهي جديد ايجاد ميشود. اگر زماني كه شما روي شاخهي خود كار ميكنيد كسي كاميتي به شاخهي اصلي اضافه كند ميتوانيد آن را در شاخهي خود اعمال كنيد.
نمودار زير روندي را كه يك شاخهي جانبي با نام feature بايد طي كند تا با شاخهي اصلي تلفيق شود نمايش ميدهد.
- براي ساخت يك شاخهي جديد به مخزن جديدي كه با نام hello-world ساختهايد برويد.
- روي فهرست بازشوندهي موجود در بالاي فهرست فايلها كه روي آن نام شاخه نوشته شده است كليك كنيد. در تكستباكس بازشده نام شاخهي جديد، مثلا readme-edits را وارد كنيد.
- روي دكمهي Create branch كليك كنيد يا دكمهي Enter را در كيبورد خود بزنيد.
حالا دو شاخه داريد؛ يكي master و ديگري readme-edits كه كاملا شبيه به هم هستند؛ البته تا زماني كه تغييري در هيچيك اعمال نكردهايم.
گام سوم: ايجاد تغييرات و اعمال آنها
حالا كه شاخهي جديدي با محتويات يكسان با شاخهي اصلي داريم، بدون ترس از خرابكاري ويرايشهاي خود را آغاز ميكنيم.
در گيتهاب به تغييرات اعمالشده كاميت (commit) ميگويند. هر كاميت يك پيام كاميت نيز به همراه دارد كه توضيح كوتاهي در رابطه با دليل اعمال آن تغيير است. پيامهاي كاميت به ساير مشاركتكنندگان در پروژه اين امكان را ميدهد كه متوجه شوند شما چه تغييري را به چه دليل اعمال كردهايد.
- براي اعمال يك تغيير روي فايل README.md كليك كنيد.
- روي آيكون مداد در گوشهي بالا سمت راست كليك كنيد تا بتوانيد آن را ويرايش كنيد.
- در ويرايشگر، كمي دربارهي خود بنويسيد.
- يك پيام كاميت براي توصيف تغييرات خود بنويسيد.
- روي دكمهي Commit changes كليك كنيد.
تغييرات ايجادشده در فايل README تنها در شاخهي readme-edits اعمال شدهاند. حالا اين شاخه داراي تغييراتي نسبت به شاخهي master است.
گام چهارم: ايجاد درخواست اعمال تغييرات يا pull request
حالا براي اعمال اين تغييرات در شاخهي اصلي بايد درخواست آن را ايجاد كنيد. pull request هستهي تمام همكاريها در گيتهاب را تشكيل ميدهد. با ارسال چنين درخواستي، شما از صاحب شاخه ميخواهيد كه تغييرات انجامشده توسط شما را مطالعه و در صورت صلاحديد به شاخهي اصلي اضافه كند. درخواستهاي اعمال تغييرات تغييرات بين دو شاخه را نمايش ميدهند. تغييرات، حذف و اضافهها در رنگهاي سبز و قرمز نشان داده ميشوند.
با استفاده از سيستم منشن در گيتهاب ميتوانيد در سيستم پيام pull request خود از ساير افراد يا تيمها درخواست كنيد كه دربارهي ويرايشهاي شما انديشه متخصصين بدهند.
شما ميتوانيد درخواست اعمال تغييرات را براي خود نيز ارسال كنيد. يعني وقتي تغييري را بهطور كامل در شاخهي فرعي انجام داديد، ميتوانيد براي تلفيق آن در شاخهي اصلي از pull request استفاده كنيد.
گام پنجم: پذيرش درخواست تلفيق تغييرات اعمالشده
در اين گام پاياني، نحوهي تلفيق تغييرات شاخهي فرعي در شاخهي master را مطالعه ميكنيم.
- روي دكمهي سبزرنگ Merge pull request كليك كنيد تا تغييرات شما در شاخهي اصلي اعمال شوند.
- روي Confirm merge كليك كنيد.
- حالا كه تغييرات را اعمال كردهايد، ميتوانيد با استفاده از دكمهي Delete branch شاخهي فرعي را حذف كنيد.
اصطلاحات مهم در گيت هاب
در تصوير فوق صفحهي اصلي مربوط به يك پروژه را ميبينيد. در مستطيل شمارهي يك نام پروژه، تعداد افرادي كه در حال تماشاي آن هستند، تعداد افرادي كه با ستاره دادن آن را ارزيابي كردهاند، تعداد دفعاتي كه اين پروژه توسط توسعهدهندگان ديگر براي مشاركت در پروژه، كپيبرداري شده است. در مستطيل شمارهي ۲ تعداد كاميتهاي اعمالشده در شاخهي فعلي، تعداد شاخههاي موجود، تعداد نسخههاي منتشرشده و تعداد مشاركتكنندگان در پروژه نشان داده شده است. در مستطيل شمارهي ۳ نوار انتخاب شاخه را ميبينيد كه در زير آن فايلهاي مهم پروژه به همراه زمان آخرين باري كه تغييري در آنها اعمالشده است قرار دارد.
در قسمت راست تصوير و در مستطيل شمارهي ۴ مفاهيمي كليدي را مشاهده ميكنيد كه در زير به توضيح آنها ميپردازيم.
- كد (Code): حالت نمايشي كه بهصورت پيشفرض در آن قرار داريد و فايلهاي پروژه به شما نمايش داده ميشوند.
- مسائل (Issues): چنانچه شما يا همتيميهاي شما بخواهند اشكالي را در نرمافزار گزارش كنند، يا درخواست افزودن قابليت يا مسائلي اينچنيني را مطرح كنند، از اين گزينه استفاده ميكنند.
- ويكي (Wiki): امكاني است براي ثبت جزئيتر پروژه نسبت به آنچه در README.md ميآيد.
- ضربان (Pulse): خلاصهاي از آمار پروژه شامل مسائل مطرحشده، حلشده و حلنشده كه نشانگر ميزان فعال بودن پروژه است.
- نمودارها (Graphs): پيشرفت پروژه در طول زمان شامل روزهاي پركار و زمانهايي كه پروژه رها شده و بيتغيير مانده است نشان ميدهد.
و نهايتاً در همان سمت راست تصوير لينك دسترسي به مخزن را ميبينيد كه اگر قصد داشته باشيد پروژهاي را كلون كنيد، يعني نسخهاي از آن را براي خود كپي كنيد، ميتوانيد از طريق اين آدرس اقدام كنيد.
حالا با كليك روي قسمت commits نگاهي به سوابق كاميتها مياندازيم. در اين قسمت كاميتها را به ترتيب جديدترين به قديميترين مشاهده ميكنيد. در سمت چپ توضيح مختصري در خصوص كاميت، نام سازندهي آن و تاريخي كه ساخته شده است ميبينيد. در سمت راست، نسخهي كوتاه هش مربوط به كاميت و لينك ورود به اين كاميت قرار دارد.
روي هش كاميت كليك كنيد تا تغييراتي كه به واسطهي آن اعمال ميشود ببينيد. در مثال ما تغييرات نظير فايل README و فايل Version.php يك پروژه مطالعه شده است. در سمت چپ مواردي كه در مقايسه با نسخهي قبل حذف شدهاند ميبينيد و در سمت راست آنچه در اين نسخه اضافه شده است شاهد هستيد. در بالاي هر كاميت سمت چپ خلاصهاي كوتاه از تغييرات نمايش داده ميشود.
اما قسمت جالب ماجرا اينجا است؛ نشانگر موس را روي هر يك از قسمتهاي چپ يا راست كه قرار دهيد آيكوني آبيرنگ با علامت مثبت نمايان ميشود. با كليك روي آن ميتوانيد انديشه متخصصين خود را در خصوص قسمت خاصي از تغيير اعمالشده بنويسيد. اين ويژگي گيتهاب از قابليتهاي فوقالعادهاي است كه تجربهي كار گروهي را ارتقاء ميدهد. اگر ميخواهيد راجب كل كاميت انديشه متخصصين بدهيد، در پايين آن قسمتي براي اين كار در انديشه متخصصين گرفته شده است.
اتصال به گيتهاب
حالا قصد داريم پروژهي كوچكي را كه در گيت روي آن كار كرده بوديم در گيتهاب بارگذاري كنيم. براي اينكار ابتدا نياز به ساخت يك حساب متخصصي در گيتهاب داريد. توجه داشته باشيد در روند ساخت حساب متخصصي در گيتهاب پس از وارد كردن نام متخصصي، رايانامه و پسورد، دو تعرفه پيش روي شما قرار ميگيرد. در گزينهي اول استفاده از گيتهاب رايگان خواهد بود اما نميتوانيد پروژهي محرمانه بسازيد. طبعاً گزينهي دوم پولي و با امكان ساخت پروژهي محرمانه يا خصوصي است.
پس از ورود به حساب متخصصي خود براي بارگذاري پروژه روي علامت مثبت موجود در بالا گوشهي راست كليك كنيد و در فهرست بازشده New repository را براي راهاندازي مخزن جديد انتخاب كنيد. در اين مرحله فرم مربوط به ساخت پروژهي جديد ظاهر خواهد شد.
در قسمت Repository name يك نام براي مخزن خود وارد كنيد. اين نام ميتواند first-project به معني اولين پروژه باشد. ميتوانيد توضيحي نيز در خصوص آن ذكر كنيد. مثلا my first Github project به معني اولين پروژهي من در گيتهاب. حالت پروژه با توجه به نوع متخصصي شما، public خواهد بود. نهايتا تيك inilialize this repository with a README را بزنيد و دو قسمت ديگر را به همان شكل روي None رها كنيد. حالا روي Create repository كليك كنيد.
در اين مرحله به صفحهي راهانداري سريع هدايت خواهيد شد. اين صفحه امكان بارگذاري پروژهي گيت را به ما خواهد داد. براي انجام اينكار اولين سطر زير or push an existing repository from the command line... را كپي كنيد و آن را در ترمينال يعني همانجايي كه تا كنون روي آن كار ميكرديم پيست كنيد.
اينكار به ما خروجي نخواهد داد. حالا همين كار را براي سطر دوم انجام دهيد. در اين مرحله تغييرات ما به گيتهاب منتقل ميشود و خروجي مشابه آنچه در تصوير زير ميبينيد خواهد بود. حالا در مرورگر خود صفحهي گيتهاب را ريفرش كنيد. فايلهاي README.md و index.php بهعنوان اولين فايلهاي پروژه نمايش داده ميشوند و محتويات README.md در پايين صفحه نمايان ميشود.
سخن پاياني
در اين مقاله با مفاهيم بنيادي گيت، طرز كار با آن، اصطلاحات گيتهاب و متخصصدهاي هركدام آشنا شديد. با اينكه ممكن است مفاهيم بسيار ديگري وجود داشته باشد كه ما در اين يادگيري مقدماتي به آنها نپرداخته باشيم، شما متخصص محترم اخبار تخصصي، علمي، تكنولوژيكي، فناوري مرجع متخصصين ايران با آموختن همين ميزان از اطلاعات ميتوانيد كار خود را آغاز كنيد و مابقي مفاهيم را رفتهرفته بياموزيد. نكتهي خوب در مورد گيت و گيتهاب اين است كه افرادي در آنها فعاليت دارند كه تشنهي يادگيري و ياد دادن هستند و از اين نقطهانديشه متخصصين، اين سرويسها شما را وارد دنيايي نامتناهي از اطلاعات ميكنند و روز به روز به دانش كدنويسي شما خواهد افزود زيرا يكي از ابزارهاي مهم براي شروع برنامهنويسي، يادگيري ابزارهاي كنترل نسخهاي مانند گيت است.
هم انديشي ها