مقدمة إلى Git
نشرت: 2022-06-30عندما بدأت في إنشاء مواقع الويب ، قمت "بترميز رعاة البقر" ، مما يعني أنني كنت أقوم غالبًا بتحرير الملفات مباشرة على الخادم. لم يستغرق الأمر مني سوى عدد قليل من المواقع المعطلة لأدرك أن هذه كانت فكرة رهيبة. ثم بدأت في بناء المواقع محليًا على جهاز الكمبيوتر الخاص بي. قمت أكثر من مرة بتحرير ملف محلي فقط لترحيل الملف إلى الموقع الخطأ في عميل FTP الخاص بي. في بعض الأحيان ، قد يعني ذلك أنني سأكتب فوق ملف لا يمكنني إصلاحه دون البحث عن بعض النسخ الاحتياطية التي آمل أن أحتفظ بها.
إذا كنت لا تزال تتعامل مع FTP ولم تتمكن من استعادة ملفاتك ، فقد حان الوقت للتعرف على استخدام Git للتحكم في الإصدار.
ما هو التحكم في الإصدار؟
نظام التحكم في الإصدار (VCS) هو نوع من البرامج التي تساعد مطوري البرامج على إدارة التغييرات في التعليمات البرمجية الخاصة بهم بمرور الوقت. سيتتبع نظام VCS الجيد كل تغيير يتم إجراؤه في الكود. هذا يعني أنه إذا كسرت شيئًا ما ، فيمكنك الرجوع إلى إصدار سابق من التعليمات البرمجية كان يعمل ، دون محاولة الضغط على "تراجع" حتى تعمل الأشياء.
في بيئة الفريق ، سيساعدك VCS على العمل مع أعضاء مختلفين من خلال إعطائك أدوات تسمح لك بدمج التغييرات في التعليمات البرمجية معًا عندما يقوم أعضاء مختلفون بتحديث الملفات.
أحد الأشياء التي أقوم بها في Git هو إنشاء فرع جديد لكل ميزة أقوم بإنشائها. هذا يعني أنه يمكنني تتبع التغييرات التي أجريها على أحد الفروع ، ولكن لا يزال بإمكاني العودة إلى الحالة الحالية للموقع عن طريق العودة إلى الفرع الرئيسي. سنتحدث أكثر عن سير العمل هذا لاحقًا.
ما هو جيت؟
Git هو نظام تحكم في الإصدارات ، لكنه ليس الوحيد. يتم تشغيل مستودع WordPress الرئيسي عبر SVN ، على الرغم من أنه يمكنك العثور على نسخة Git أيضًا. هناك أيضًا Mercurial و Visual Source Safe و VESTA والعديد من الخيارات الأخرى.
على الرغم من كل هذه الخيارات ، فإن Git هو ما يستخدمه الجميع تقريبًا ، لذا فهو التحكم في الإصدار الذي سنتعرف عليه اليوم.
شروط وأوامر Git الأساسية
قبل أن نتعمق في آليات كيفية استخدام Git ، نحتاج إلى فهم بعض المصطلحات. سنقوم فقط بتغطية المصطلحات التي ستواجهها بانتظام.
للحصول على قائمة كاملة بكل ما يمكن أن تصادفه ، انظر إلى هذا بوابة إشارة أو هذا قائمة كاملة بأوامر Git .
إضافة : عندما تقوم بإجراء تغييرات على التعليمات البرمجية الخاصة بك ، ستستخدم الأمر git add لإضافة التغييرات إلى بحيث يمكن الالتزام بها.
الفرع : الفرع هو نسخة من المستودع الخاص بك تختلف عن مشروع العمل الرئيسي. تأتي جميع المستودعات مع فرع رئيسي أو أكثر شيوعًا في المشاريع القديمة. بدأ Git و Github مؤخرًا في تغيير اسم الفرع الافتراضي من رئيسي إلى رئيسي بسبب المشكلات التاريخية المتعلقة بكلمة Master. يسمح لك Git 2.28 أيضًا بتعيين اسم الفرع الافتراضي الخاص بك لأي مشروع جديد.
الخروج : يمكنك استخدام الأمر git checkout
للتبديل بين الفروع المختلفة في المستودع. عند استخدام هذا الأمر ، يقوم Git بتغيير محتويات الملفات أو إضافة وإزالة الملفات التي تختلف بين الفروع.
استنساخ : يتم استخدام الأمر git clone
لعمل نسخة من مستودع من مستودع المصدر. يمكنك استخدام هذا الأمر للحصول على نسخة محلية من مستودع بعيد حتى تتمكن من العمل على الكود.
الالتزام : بمجرد استخدام git add
، يلزمك استخدام git commit
لتتمكن من حفظ حالة ملفاتك في git.
init : تنشئ git init
مستودعًا فارغًا يحتوي على جميع الملفات الأساسية التي يحتاجها Git للعمل.
دمج : بمجرد إجراء التغييرات على فرع واحد وإضافتها وتنفيذها ، يمكنك استخدام الأمر git merge لترحيل تلك التغييرات إلى الفروع الأخرى.
الأصل : هذا هو الاسم الافتراضي للإصدار الأساسي من المستودع. عادةً ما أقوم بتغيير خاصتي لأكون أكثر وصفية من الأصل. إذا كنت أعمل مع Github ، فأنا أغير الإعدادات في Git حتى يصبح هذا الأصل جيثب. هذا يساعدني على إبقاء الأمور واضحة في رأسي.
Push : يحدّث الفرع البعيد بالالتزامات التي تم إجراؤها في الإصدار المحلي الخاص بك من المستودع.
المستودع : قد يُطلق عليه أيضًا "Repo" وهو دليل لجميع الملفات ، وسجل Git للتغييرات على هذه الملفات.
الحالة : حالة git status
توضح لك الحالة الحالية لمستودع التخزين العامل الخاص بك.
.gitignore : هذا ملف مخفي يحتوي على أنماط من الملفات لن يزعج Git تتبعها. إذا كان لديك .DS_Store
في ملفات .gitignore
الخاصة بك ، فسيتجاهل جميع الملفات المزعجة التي يضعها نظام MacOS غالبًا داخل المجلدات.
استضافة مستودعات Git
هناك شيء آخر يجب فهمه قبل الغوص فيه وهو أنه على الرغم من أنك لا تحتاج إلى موقع بعيد لمستودعك ، فإن عدم وجود واحد سيقلل من بعض فوائد استخدام Git. بدون مستودع بعيد مستضاف في مكان آخر ، لن يكون لديك نسخة احتياطية من التعليمات البرمجية الخاصة بك إذا مات جهاز الكمبيوتر الخاص بك أو سُرق.
يعد Github و Bitbucket من أكثر الأماكن شيوعًا لاستضافة مستودعات Git الخاصة بك لأنها في الغالب مجانية ، ويمكن أن يكون لديك مستودعات خاصة. هذا يعني أن الكود الخاص بك موجود على خادم شخص آخر ، لذا إذا لم تعجبك هذه الفكرة ، فيمكنك استخدام Gitlab على خادمك لاستضافة المستودعات.
تثبيت Git
على نظام macOS ، فإن أبسط طريقة لتثبيت git هي فتح Terminal واكتب git الذي سيطالبك بتنزيل أدوات Xcode Command Line لتثبيت git. بمجرد الانتهاء من ذلك ، يمكنك تشغيل git –version لمعرفة أي إصدار من git لديك. إذا لم يفلح ذلك ، فهناك عدة طرق أخرى لتثبيت git على macOS.
بالنسبة لمستخدمي Windows ، يمكنك تثبيت Git باستخدام مثبت Git الرسمي. يأتي Git أيضًا مرفقًا مع تطبيق Github Desktop ، والذي سنتحدث عنه لاحقًا.
إذا كنت تستخدم نظام Linux ، فيجب أن يتم إرفاق git مع مدير الحزم الخاص بك ، أو يمكنك إلقاء نظرة على هذه الطرق لتثبيت git على Linux.
تكوين افتراضيات Git
بمجرد تثبيت Git ، تحتاج إلى تكوينه بحيث يستخدم كل التزام اسمك وبريدك الإلكتروني وتثبيت الرسائل لاستخدام المحرر المفضل لديك لإدخال أي تعليقات تتوافق مع الالتزام. سننظر في طريقة تعيينها في macOS عبر تطبيق Terminal.
git config --global user.name "Your Name"
سيعين الاسم الذي يتناسب مع كل التزام يتم إجراؤه على جهاز الكمبيوتر الخاص بك.
git config --global user.email "[email protected]"
عنوان البريد الإلكتروني المرتبط بكل التزام تقوم به.
git config --global core.editor vim
سيجعل المحرر الافتراضي لـ Git vim. بينما أحب vim ، فإنه ليس المحرر الذي يحب الجميع. إذا كنت تستخدم Atom ، فستستخدم git config –global core.editor "atom –wait" أو git config –global core.editor "subl -n -w" لـ Sublime Text.
إذا كنت تستخدم IDE ، فإن Visual Studio Code يتيح لك أيضًا العمل مع Git مباشرة من داخل التطبيق إذا كنت تريد كما يفعل PHPStorm .
إنشاء المستودع
الآن بعد أن قمنا بتثبيت وتهيئة git ، فلنبدأ في إنشاء مستودع أساسي. افتح Terminal وأنشئ مجلدًا يسمى test-repository عن طريق كتابة mkdir test-repository
. ثم اكتب cd test-repository
لتغيير دليل مستودع التخزين واكتب git init
.
في هذه المرحلة ، سيكون لديك دليل مخفي واحد في مجلدك يسمى .git
. نظرًا لأنه ملف مخفي ، ستحتاج إلى كتابة ls -a
في Terminal لسرد الملفات المخفية.
باستخدام git add
لنقم الآن بإنشاء ملف عن طريق كتابة touch test.txt
في Terminal. اكتب التالي git status
لرؤية الملف الذي أضفته للتو.
كما ترى ، يظهر الملف الجديد الذي أنشأناه باللون الأحمر ويخبرنا أن حالته لم يتم تعقبها. هذا يعني أن Git يرى الملف ، لكن ليس لديه أي سجل له.
اكتب git add test.txt
لإخبار Git بترتيب هذا الملف ، ثم اكتب git status
مرة أخرى ويجب أن يخبرك Git أنه يعرف عن ملف تم تغييره.
إرسال الملفات إلى Git
الآن بعد أن أضفنا ملفنا ، نحتاج إلى إلزامه حتى يحفظ Git حالة الملف. يمكننا القيام بذلك في سطر واحد ، دون فتح محررنا الافتراضي بالأمر التالي.
git commit -m 'adding our first file'
يخبر العلم -m
git أن الكلمات الموجودة داخل علامات الاقتباس المفردة هي التعليق الذي يتماشى مع الأمر.
الآن يحتوي مستودعنا على ملف واحد فيه مع حفظ حالته.
إنشاء فرع
تأتي القوة الحقيقية لـ Git عندما تبدأ في التفرع. لنفترض أنك تريد كتابة مجموعة في ملف test.txt ولكنك لست متأكدًا مما إذا كنت ستحتفظ به وتريد التأكد من أنه يمكنك العودة إلى الملف الفارغ حاليًا. يمكننا القيام بذلك بفرع.
لإنشاء فرع يمكننا كتابة git checkout -b new-branch
. هذا اختصار لإنشاء فرع في نفس الوقت الذي نقوم فيه بتسجيل الخروج من الفرع ، وهو ما أستخدمه في كل مرة أحتاج فيها إلى إنشاء فرع.
افتح الآن ملف test.txt
الخاص بنا ، وأضف بعض النصوص إليه واحفظه. ثم استخدم git add
و git commit
على النحو الوارد أعلاه لحفظ حالة الملف.
بعد ذلك ، اكتب git checkout master
للعودة إلى الفرع الرئيسي الافتراضي ثم انظر إلى محتويات ملف test.txt
مرة أخرى. ستلاحظ أنه تمت إزالة كل النص الذي كتبته. حتى أن Git قد يحذف ملفًا جديدًا كان موجودًا على فرع واحد فقط ، على الرغم من أنه يحتفظ بسجل له حتى لا يختفي.
دمج فرع
الآن ، نحن نحب كل ما كتبناه في ملفنا ، لذلك دعونا ندمجها مع فرعنا الرئيسي. تأكد من أنك في الفرع الرئيسي واكتب git merge new-branch
لدمج تغييراتك.
إذا نظرت إلى محتويات test.txt
الآن ، فستجد التغييرات في الفرع الرئيسي تمامًا كما تركتها.
استخدام Git مع WordPress
بينما كان المثال أعلاه بسيطًا للغاية ، فهذا كل ما تحتاجه لبدء استخدام Git في مشاريعك. لذلك دعونا نتحدث عن كيفية حصولك على مشروع WordPress باستخدام Git.
الاعتبار الأول هو المستوى في التسلسل الهرمي للمجلدات الذي يجب أن يكون جذر مستودع Git الخاص بك. إذا كنت تقوم ببناء سمة ، فيمكنك جعل مجلد السمات هو المستودع الخاص بك. ينطبق نفس المنطق إذا كنت تقوم بإنشاء مكون إضافي.
عادةً ما أعمل في السمات والمكونات الإضافية في نفس الوقت ، لذلك غالبًا ما أستخدم مجلد wp-content كموقع لمستودعي. عندما أفعل ذلك ، أتأكد من تجاهل مجلد التحميلات حتى لا أقوم بإضافة جميع الصور والملفات التي تم تحميلها إلى المستودع. إنها تشوش المستودع ويمكن أن تبطئ Git لأنها ليست رائعة في ضغط ملفات الصور.
إذا كنت أتعامل مع سير عمل نشر كامل ، فأنا أجعل مجلد WordPress الجذر هو الموقع الرئيسي لمستودع Git الخاص بي. ثم أتأكد من إضافة wp-content/uploads
و wp-config.php
إلى ملف .gitignore
الخاص بي. يعد wp-config.php
خاصًا بكل تثبيت WordPress ، لذلك لا أريد نشره على أي إصدار آخر من الملف مما قد يتسبب في توقف الموقع عن العمل.
يمكنك مشاهدة نسخة من ملف .gitignore
الذي أستخدمه كنقطة بداية لكل مشروع. يفترض أنك تستخدم wp-content
كجذر لمستودع Git الخاص بك ، لذلك أقوم بتغيير بعض أنماط التجاهل إذا كنت في جذر WordPress.
تطبيقات Git GUI
بينما قمنا بتغطية الأساسيات عبر سطر الأوامر لـ Git ، لا يشعر الجميع بالراحة في سطر الأوامر ، أعلم أنني لم أكن عندما بدأت في استخدام Git. حتى الآن ، أرغب أحيانًا في إلقاء نظرة على تمثيل مرئي لما يفعله Git قبل إجراء أي تغييرات على الإعداد الخاص بي.
لحسن الحظ ، هناك العديد من عملاء واجهة المستخدم الرسومية الرائعة لـ Git والتي يمكنك استخدامها ، لذا دعنا نسلط الضوء على بعضها.
سطح المكتب Github (Windows / macOS)
يعد تطبيق Github Desktop أحد الأماكن الرائعة التي يمكنك البدء بها وأنت تنظر إلى عملاء Git GUI.
تستخدم العديد من المشاريع مفتوحة المصدر Github كمستودع شفرات خاص بها للتعاون واستخدام تدفق Github القياسي للقيام بعملهم. تم تصميم عميل Github Desktop لمساعدتك في التعامل مع هذا التدفق ، لذا فإنه سيجعل إنشاء طلبات السحب أسهل.
إذا لم تكن متأكدًا من ماهية طلب السحب ، فتحقق من ذلك وثائق Github على طلبات السحب
لسوء الحظ بالنسبة لمستخدمي Linux ، لا يوجد تطبيق Github Desktop رسمي ، ولكن هناك مفترق Github Desktop سيتم تثبيته على أنظمة Linux.
برج جيت (Windows / macOS)
واجهة المستخدم الرسومية Git التي أستخدمها هي Git Tower. Git Tower متاح لأنظمة macOS و Windows. عندما بدأت استخدام Git ، وجدت أنه من الأسهل حل التعارضات ومعرفة ما هو مختلف بين الملفات داخل واجهة المستخدم الرسومية هذه.
نسخة العمل (iOS / iPadOS)
إذا كنت تعمل بشكل أساسي من جهاز iPad ، كما أفعل ، فعليك إلقاء نظرة على نسخة العمل. نسخة العمل هي عميل Git كامل الميزات يعمل مع iOS و iPadOS. حتى أنه يتميز بتكامل الاختصارات حتى تتمكن من أتمتة أجزاء من سير عمل Git.
تغليف
على الرغم من أننا قد غطينا الكثير من التفاصيل في معرفتك Git اليوم ، فلا توجد طريقة يمكن أن تكون مشاركة مدونة واحدة شاملة حول هذا الموضوع. يمكنك متابعة تعلمك من خلال وثائق المساعدة Nexcess بالإضافة إلى هذه الموارد الممتازة.
- وثائق Git
- كتاب Pro Git
- Laracasts Git Lesson
- الموارد الخارجية الخاصة بـ Git
باستخدام Git لإدارة مشاريع العميل الخاصة بك ، ستوفر على نفسك المتاعب حيث يمكنك التراجع عن التغييرات أو تجاهل الفروع بأكملها إذا لم تعد ترغب في العمل الذي قمت به. لا مزيد من Ctrl + Z حتى تعتقد أنك تراجعت بعيدًا بما فيه الكفاية ، وسوف يتتبع Git كل شيء من أجلك.