هل واجهت أي أخطاء أو واجهت مشاكل مع التزامات Git أثناء العمل مع Git؟ ربما تم حفظ سر غير صحيح أو بيانات حساسة. لحسن الحظ، يمكنك معالجة ملفاتك مع Git وإزالتها من التزام وإصلاح التاريخ.
إذا قمت بعمل عدة تزامنات أو استنسخت مستودعًا بتاريخ تزامن موجود بالفعل، فإنك عادةً ترغب في النظر إلى الوراء ورؤية جميع التزامات تم إجراؤها. وفي هذا البرنامج التعليمي، ستتعلم كيفية إزالة إدخال من تاريخ Git الخاص بك.
استمر في القراءة وأنقذ اليوم مع Git!
المتطلبات الأساسية
يتكون هذا البرنامج التعليمي من تعليمات تفصيلية خطوة بخطوة. إذا كنت ترغب في متابعة، تأكد من وجود ما يلي:
- A local machine to test the Git commands – This tutorial uses Windows 10, but later versions will also work.
- Git Bash – يستخدم هذا البرنامج التعليمي Git Bash 2.36.
إزالة ملف من التزام Git
عندما تعمل على Git كفريق، تقوم بعمل مئات من التزامات يومياً. نتيجة لذلك، هناك فرص كبيرة للحاجة إلى التراجع عن تزامن معين، مثل بسبب ملف غير صحيح أو ملفات متعددة. يتسبب هذا الطلب عادةً بسبب تغيير في الشيفرة أو التكوين ويصبح مشكلة.
لحل هذه المشكلة، ستحتاج إلى إزالة الملف أو الملفات المتعددة من تزامن Git من خلال تشغيل أوامر Git. ستستخدم أحد الأدوات الشهيرة لإزالة ملف واحد من تزامن Git، أداة Git Bash.
1. افتح أداة Git Bash على جهاز الكمبيوتر الخاص بك الذي يعمل بنظام Windows.
2. بعد ذلك، قم بتشغيل الأمر التالي لإنشاء مجلد للمستودع والتبديل إلى ذلك المجلد. هذه الأوامر لا تقدم إخراجًا في وحدة التحكم. ولكن تأكد من استبدال ~/Desktop/Repository/repo1 بالمسار والاسم المفضلين لديك.
3. قم بتشغيل الأوامر التالية لتهيئة مستودعك وإنشاء ملفي نص تحمل اسمي test1.txt و test2.txt.

4. الآن، قم بتنفيذ الأمر التالي لفحص حالة التزام Git.
بعد تنفيذ الأمر، ستلاحظ أن التزامات Git غير المتتبعة ولم يتم تأكيدها حتى الآن، كما هو موضح أدناه.

5. قم بتشغيل الأمر git add أدناه لإضافة الملفين النصيين اللذين قمت بإنشائهما في الخطوة الثالثة (test_file1.txt و test_file2.txt) إلى مستودعك المحلي.
لا يقدم هذا الأمر إخراجًا ولكنه يضيف الملفات دون دفعها إلى المستودع البعيد.
6. فيما بعد، قم بتشغيل أمر git commit أدناه بحيث يتتبع Git التقدم والتغييرات التي قمت بها في المستودع المحلي.

7. بعد الارتكاز، قم بتشغيل الأمر أدناه لإزالة ملف محدد (test_file2.txt) من الارتكاز Git.

8. في النهاية، أعد تشغيل أمر git status أدناه للتحقق من حالة المستودع.
كما يمكنك أن ترى أدناه، تمت إزالة الملف من منطقة الإعداد (الارتكاز Git) ويُعرض الملف (test_file2.txt) تحت الملفات غير المتتبعة.

إزالة جميع الملفات التي تم ارتكابها مؤخرًا
لقد تعلمت للتو كيفية إزالة ملف محدد من ارتكاب Git. ولكن بشكل عام، قد تحتاج إلى حذف عدة ملفات، وGit جاهز لذلك باستخدام أمر git reset. أمر git reset هو أداة معقدة ولكن في نفس الوقت متعددة الاستخدامات للتراجع عن التغييرات في المستودع.
لرؤية كيفية عمل git reset، ستقوم بارتكاب ملفين، ثم إعادة تعيين التغييرات لإزالة الملفات التي تم ارتكابها مؤخرًا والتي تم تخزينها في ارتكاب Git:
1. قم بإنشاء ملفي نص جديدين بأسماء test_file3.txt و test_file4.txt في مجلد ~/Desktop/Repository/repo1.
2. بعد ذلك، قم بتشغيل أمر git add أدناه، الذي لا يقدم إخراجًا ولكن يضيف الملفات النصية الجديدة إلى مستودعك المحلي (~/Desktop/Repository/repo1).
3. قم بتشغيل أمر git commit أدناه لارتكاب الملفات بحيث يحتفظ Git بتتبع التقدم والتغييرات التي قمت بها في المستودع.

٤. الآن، قم بتشغيل الأمر أدناه للتحقق من حالة مستودعك المحلي.
كما يمكنك رؤية أدناه، يظهر الإخراج رسالة “nothing to commit”، مما يشير إلى أن كل شيء في مكانه في المستودع.

٥. فيما بعد، قم بتشغيل أمر إعادة تعيين جيت أدناه لعكس التزامات تم إجراؤها مؤخرًا في الخطوة الثالثة. هذا الأمر لا يوفر إخراجًا ولكنه يزيل الملفات test_file3.txt و test_file4.txt.
يمكنك أيضًا استخدام `git reset –soft HEAD^` لإزالة جميع الملفات التي تم التزامها حتى الآن.
٦. فيما بعد، أعد تشغيل أمر حالة جيت أدناه للتحقق من حالة المستودع.
فيما يلي، يظهر الإخراج ملفات test_file3.txt و test_file4.txt التي يجب التزامها. يشير هذا الإخراج إلى الملفات التي يجب إزالتها من تزامن Git.

إزالة التزامات محددة من تاريخ Git
يعمل إزالة جميع الملفات التي تم التزامها بشكل رائع إذا كنت ترغب في البداية من جديد. ولكن ماذا لو كنت بحاجة فقط إلى إزالة التزام معين؟ سيقوم الأمر git revert بالأمر طالما كنت تعرف هوية التزامه.
في الخطوة الأخيرة من قسم “إزالة جميع الملفات التي تم التزامها مؤخرًا”، لاحظت أن التزامات لم تتم التزامها ولكن تغيرت. الآن ستقوم بالتزام التغييرات لرؤية أمر git revert
في العمل.
قم بتشغيل أمر git commit
أدناه لتنفيذ التغييرات الأخيرة على مستودعك المحلي.
بعد تشغيل الأمر، ستلاحظ أن كل من ملفات النص تم تأكيدها مرة أخرى، وهوية التأكيد هي 0315b85، كما هو موضح أدناه.

الآن، قم بتشغيل الأمر git revert
أدناه للرجوع عن التأكيد الذي قمت به في الخطوة السابقة. تأكد من استبدال 0315b85
بهوية التأكيد الخاصة بك.
أدناه، يمكنك رؤية أن ملفين قمت بالتأكيد عليهما مؤخرًا قد تم حذفهما.

حذف مجلد من تاريخ التأكيد في Git
حتى الآن، أنت تعلم بالفعل كيفية حذف ملف مؤكد، ولكن ماذا عن مجلد؟ حذف مجلد من تأكيد Git يشبه حذف الملفات.
1. قم بتشغيل الأوامر أدناه، التي لا تقدم إخراجًا ولكنها تقوم بأداء الآتي:
- أنشئ مجلدًا باسم
myfolder
داخل مستودعك المحلي (~/Desktop/Repository/repo1).
- أنشئ ملفًا باسم l.txt داخل مجلد ~/Desktop/Repository/repo1/myfolder.
2. بعد ذلك، قم بتشغيل أوامر git أدناه لإضافة المجلد الجديد (~/Desktop/Repository/repo1/myfolder) إلى مستودعك المحلي.

3. قم بتشغيل أمر git rm التالي لإزالة المجلد (myfolder) الذي قمت بالتأكيد عليه في الخطوة الثانية.

4. أخيرًا، قم بتشغيل أمر git status للتحقق من حالة المستودع ورؤية ما إذا كان المجلد قد تم إزالته أم لا.
أدناه، يمكنك رؤية أن المجلد بأكمله (myfolder) قد تم حذفه بنجاح، جنبًا إلى جنب مع ملف l.txt داخله.

الاستنتاج
في هذا الدرس، لقد تعلمت كيفية العمل مع عمليات الاستدراج في Git، مثل إزالة استدراج محدد، أو ملف، أو ملفات متعددة. كما لمسنا أيضًا كيفية حذف مجلد بأكمله داخل المستودع المحلي والتزامن بالتغييرات.
في هذه النقطة، يمكنك أن تلتزم بثقة بتغييراتك في المستودع الخاص بك وإزالة الاستدراجات التي تراها غير ضرورية دون أن تقوم بإفساد الأمور.
بناءً على ما تعلمته في هذا الدرس، ما هي الطريقة التي تعتقد أنها يمكن أن تكون ممتازة للعمل مع الاستدراجات لفريقك؟
Source:
https://adamtheautomator.com/git-and-remove-from-commit/