[5#] إستخدامات أوامر add & commit & reset & status فى Git
💡 الأن بعد انتهائك من إنشاء الـ Repo وأخذ نسخة منه على جهازك المحلى ، يجب عليك معرفة هذه الأوامر:
- git status.
- git add.
- git reset.
- git commit.
💡 معرفتك بهذه الأوامر هتساعدك أثناء عملك على المشروع، على سبيل المثال:
- ازاى تعرف حالة الملفات؟
- ازاى تضيف ملفات جديده لل repo؟ أو عمل overwrite على ملف موجود بالفعل.
- ازاى تعمل حذف لملف فى منطقة الترحيل staging area؟
💡 وهتتعلم أيضُا:
- استخدامات هذه الأوامر [ commit + add + reset + status ] بالتفصيل.
- كيفية دمج أمر commit و add فى سطر واحد.
- كيفية حذف ملف من منطقة الترحيل (Staging area).
– لكن قبل البدأ يجب عليك معرفة ما هى work area [ منطقة العمل ] و staging area [ منطقة الترحيل ]؟
👈 [ منطقة العمل work area ] هي مكان الملفات التي لا يتم التعامل معها بواسطة git ويُشار إلى هذه الملفات أيضًا باسم “الملفات التي لم يتم تتبعها” بواسطة git.
👈 [ منطقة الترحيل staging area] هي الملفات التي ستكون جزءًا من التنفيذ التالي أو المُقبل، والتي تتيح لك معرفة التغييرات التي ستحدث أو ستُطبق في الملف التالي.

كفاية رغى ويلا بينا نبدأ فى الأوامر التى يجب عليك إتقانها جيدا:
1. تحقق من حالة ملفات المستودع [ git status ]
من الجيد دائمًا التحقق من حالة ملفات المستودع الخاص بك، هذا يسمح لك برؤية أي تغييرات حدثت، يعرض الأمر git status حالة دليل العمل الجارى (الأن) وحالة staging area أيضُا.
يتيح لك معرفة التغييرات التي تم تنظيمها ، وأي تغييرات لم يتم تتبعها بواسطة Git، للقيام بذلك، كالتالي 👇
# This directory contain git repo you will work on.
$ cd your-directory-project-path
# check the status of the repo
$ git status
{Output} كالتالى👇
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
Untracked files:
(use "git add <file>..." to include in what will be committed)
path/yourfile.md
أكيد أنت مش فاهم أى حاجه من كلام الـ output السابق، تعالا نفهمة بالتفصيل👇
- [ On branch master ] تعنى مدير الفرع: يقول لك هذا الأمر أننا في الفرع الرئيسي من Repo.
- [ Changes not staged for commit ] تعنى التغييرات غير المرحلية للـ commit : يسرد هذا أي ملف يتم تعقبها حاليًا بواسطة Git ولكن بها تغييرات جديدة يجب إضافتها لتتبعها Git.
- [ Untracked file ] تعنى ملف غير مُتتبع: هذه جميع الملفات الجديدة التي لم تتم إضافتها أو تتبعها من قبل Git.
💡 استخدم git status في أي وقت لعرض أي تغييرات غير متتبعة حدثت وما يتم تتبعه وما لا يتم تعقبه حاليًا، كفاية كده على أمر git status، وندخل فى أمر git add.
2. إضافة ملف [ git add ]
بعد ذلك ، خلينا نضيف الملف الذي يحتوي على المشروع إلى staging area باستخدام الأمر [ git add ]، عن طريق الأمر التالى [ لكن استبدل اسم ملف index.html باسم ملف المشروع الخاص بك ]:👇
# add a file that changes are tracked to staging area
$ git add index.html
# check status again
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: index.html
فى الأمر السابق، قُمت بإضافة ملف index.html، وقُمت بالتشييك على الحالة مرة أخرى وكان {Output}:👇
Changes to be committed: يسرد هذا الملفات الجديدة مع التغييرات التي تمت إضافتها إلى نظام تتبع Git وتم حفظها كتغييرات فعلية في محفوظات مستودع الـ git.
وفى النهاية قالى (هُناك ملف جديد إسمه index.html) وهذا يأخذنا إلى أمر الـ git commit.
3. تنفيذ التغييرات – git commit
عندما نضيف ملفًا في سطر الأوامر ، فإننا نطلب من Git إدراك حدوث تغيير، فينتقل الملف إلى منطقة “staging” حيث يتعرف Git على حدوث تغيير ولكن التغيير لم يتم توثيقه رسميًا.
عندما نريد توثيق هذه التغييرات بشكل دائم ، فإننا نقوم بعمل commit لهذه التغيرات.
سوف يقوم بعمل تنفيذ واحد لجميع الملفات التي تتم إضافتها حاليًا إلى منطقة staging في Git.
الأمر كالتالى:👇
# commit files changes with message
$ git commit -m “your message prefer special commited”
💡 commit message
أكيد عايز تعرف إيه حرف الـ m- اللى بجانب أمر commit ؟
( حرف m- إختصار لـ message وهى رسالة تصف العمل الذي تم القيام به في الـ commit)، عندما نقوم بإجراء تغيير على نظام التحكم في إصدار Git ، نحتاج إلى إضافة رسالة للـ commit.
تصف هذه الرسالة التغييرات التي تم إجراؤها في الـ commit، تكون رسالة الـ commit هذه مفيدة لك عندما تراجع سجل الـ commit لمعرفة ما تغيير بمرور الوقت ومتى حدثت هذه التغييرات.
لماذا add ثم commit؟
لفهم ما يتم مع git add و git commit ، من المهم أن نفهم أن Git لديها منطقة مرحلية staging area نضيف إليها عناصر باستخدام git add، زى ما قولتلك فى أول الفصل.
لا يتم توثيق التغييرات وتتبعها بشكل دائم حتى نقوم بعمل commit لهذه الملفات، هذا يسمح لنا بتنفيذ مجموعات محددة من الملفات في نفس الوقت إذا تريد ذلك.
مُلاحظات:
1. إذا كنت تريد حذف ملف من الـ Repo الخاص بك ، يمكنك القيام بذلك باستخدام هذا الأمر [ git rm file-name.fileExtension ]، إذا قمت بحذف ملف ، فيجب عليك استخدام أمر git add في لإخبار git بأنه تم إزالة ملف من الـ Repo، ولتتبع هذا التغيير.
2. عندما تضيف ملف ما إلى منطقة الترحيل staging area وتريد حذفه من هذه المنطقة قبل عمل commit للملفات ، يمكنك استخدام أمر git reset + اسم الملف بالإمتداد، للقيام بذلك [ git reset yourFileName.fileExtention ]
3. من الجيد استخدام أمر git status بشكل متكرر أثناء العمل مع Git، يتيح لك هذا تتبع التغيير الذي أجريته وما يتتبعه Git بالفعل.
4. من الأفضل أن يكون رسائل الـ commit أقل من 50 حرف.
💡 إذا تريد دمج عملية git add و git commit معًا يمكنك استخدام الأسماء المستعارة git aliases:
git config --global alias.add-commit '!git add -A && git commit'
إذا تريد عمل unset للإسم المستعار، إستخدام هذا الأمر:
git config --global --unset alias. your_alias
الزتونة
- [ منطقة العمل work area ] هي مكان الملفات التي لا يتم التعامل معها بواسطة git.
- [ منطقة الترحيل staging area] هي الملفات التي ستكون جزءًا من التنفيذ التالي أو المُقبل.
- يعرض الأمر git status حالة دليل العمل الجارى (الأن) وحالة staging area.
- نستخدام الأمر [ git add ] لإضافة الملف أو المجلد الذي يحتوي على المشروع إلى منطقة staging.
- عندما نريد توثيق التغييرات بشكل دائم ، فأستخدم أمر commit لتوثيق هذه التغيرات.
- رسالة الـ commit: هى رسالة تصف العمل الذي تم القيام به في الـ commit.
- إذا تريد حذف ملف من منطقة staging إستخدم أمر git reset.
💡 لا تنسي مُتابعتنا على مواقع التواصل الإجتماعى.
الإبلاغ عن خطأ
×إذا وجد خطأ وتريد الإبلاغ عن هذا الخطأ، أو إذا كنت تريد تقديم اقتراح على شىء معين، فلا تتردد في إرسال بريد إلكتروني إلينا:
info@albashmoparmeg.com
شكرًا لك على مساعدتك لنا!