--- title: When to Undoredo localeTitle: متى Undoredo --- ستحتاج عادة إلى UNDO / REDO عند ارتكاب بعض التغييرات في git ، وإدراك أن التغييرات تحتاج إلى إزالتها أو استعادتها. هذا أمر شائع جدًا في السيناريوهات على سبيل المثال ، عند إجراء تغيير مؤقت على بعض الملفات ، ونسي أن تعود إليهم ، ثم شرع في إضافتها لارتكاب الخطأ. ## سير عمل UNDO / REDO: بافتراض أنك أجريت بعض التغييرات وقدمت تعهدات مثل: `git commit -m "Commit 1 - Some changes to the code" git commit -m "Commit 2 - Some MORE changes to the code" ` 1. (UNDO-ing): العودة إلى الوراء على آخر استعادة `git reset --soft HEAD~` 2. _هل التغييرات._ 3. أضف ملفاتك إلى gath area `git add ` أو `git add --all` 4. (REDO-ing): هل ارتكبت. `git commit -c ORIG_HEAD` or `git commit -C ORIG_HEAD` ## كيف يعمل هذا؟ الآن بعد أن عرفت أن التدفق يتيح فهم كيفية عمل ذلك خلف الكواليس. 1. `Step 1` تعيد تعيين الالتزام الأخير أي `"Commit 2 - Some MORE..."` إلى `"Commit 1 - Some..."` ارتكاب. 2. في `Step 2` ، تقوم بالتغييرات التي تراها مناسبة للملفات. 3. في `Step 3` ، يمكنك إضافة الملفات التي تم تغييرها إلى منطقة التدريج إما بشكل انتقائي مع `git add ` أو كافة الملفات مع `git add --all` . 4. في الخطوة الأخيرة ، تلتزم بالتغييرات في منطقة التدريج. ملاحظة: يمكنك استخدام `-c` أو `-C` . سيعمل المصغر `-c` على فتح محرر لتعديل رسالة الالتزام ، وفي هذه الحالة سيتم `Commit 2 - Some MORE...` يمكنك تحرير رسالة الالتزام كما تريد. أو بدلاً من ذلك ، يمكنك استخدام `-C` ، حيث ستقوم بوابة git بتخطي نافذة المحرر وإعادة استخدام رسالة ارتكاب _LAST_ التي هي مرة أخرى في هذه الحالة هي `Commit 2 - Some MORE...` يُعرف إعادة استخدام رسالة الالتزام "نفسه" أيضًا بإعادة / إعادة الإلزام. ## دون خشبة قبل ارتكاب للتراجع عن التغيير الذي تم إجراؤه قبل الالتزام ، قم بتشغيل `git reset ` أو `git reset` لإلغاء تثبيت كافة التغييرات قبل الالتزام. ملاحظة: في الإصدارات القديمة من git ، كانت الأوامر `git reset HEAD ` و `git reset HEAD` على التوالي. تم تغيير هذا في Git 1.8.2 ## بعض الحيل: يمكنك العودة إلى أي عدد من `git reset --soft HEAD~n` باستخدام `git reset --soft HEAD~n` حيث تريد التراجع عن `n` الأخيرة. ## النسبة: تستند هذه المقالة إلى سؤال Stack Overflow [هنا](http://stackoverflow.com/questions/927358/how-do-you-undo-the-last-commit/927386#927386) [وهنا](http://stackoverflow.com/questions/348170/undo-git-add-before-commit/348234#348234) .