47 lines
3.3 KiB
Markdown
47 lines
3.3 KiB
Markdown
|
---
|
|||
|
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 <filenames or paths>` أو `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 <filenames>` أو كافة الملفات مع `git add --all` .
|
|||
|
4. في الخطوة الأخيرة ، تلتزم بالتغييرات في منطقة التدريج.
|
|||
|
|
|||
|
ملاحظة: يمكنك استخدام `-c` أو `-C` . سيعمل المصغر `-c` على فتح محرر لتعديل رسالة الالتزام ، وفي هذه الحالة سيتم `Commit 2 - Some MORE...` يمكنك تحرير رسالة الالتزام كما تريد.
|
|||
|
|
|||
|
أو بدلاً من ذلك ، يمكنك استخدام `-C` ، حيث ستقوم بوابة git بتخطي نافذة المحرر وإعادة استخدام رسالة ارتكاب _LAST_ التي هي مرة أخرى في هذه الحالة هي `Commit 2 - Some MORE...`
|
|||
|
|
|||
|
يُعرف إعادة استخدام رسالة الالتزام "نفسه" أيضًا بإعادة / إعادة الإلزام.
|
|||
|
|
|||
|
## دون خشبة قبل ارتكاب
|
|||
|
|
|||
|
للتراجع عن التغيير الذي تم إجراؤه قبل الالتزام ، قم بتشغيل `git reset <file>` أو `git reset` لإلغاء تثبيت كافة التغييرات قبل الالتزام.
|
|||
|
|
|||
|
ملاحظة: في الإصدارات القديمة من git ، كانت الأوامر `git reset HEAD <file>` و `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) .
|