Git restore: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@CategoryBot: Добавлена категория)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
# Git Restore: دليل شامل للمبتدئين
## استعادة الملفات في Git: دليل شامل للمبتدئين


== مقدمة ==
'''مقدمة'''


'''Git restore''' هو أمر قوي في نظام [[Git]] يسمح لك باستعادة الملفات أو الدليل إلى حالة سابقة. غالبًا ما يُستخدم لإلغاء التغييرات غير المرغوب فيها، أو استعادة الملفات المحذوفة عن طريق الخطأ، أو إعادة حالة [[مستودع Git]] إلى نقطة معينة في [[التاريخ]]. هذا الدليل موجه للمبتدئين ويهدف إلى شرح كيفية استخدام `git restore` بفعالية.
تُعدّ [[Git]] نظام تحكم بالإصدار موزع، قوي وشائع الاستخدام لتتبع التغييرات في الملفات. أثناء العمل مع Git، قد تجد نفسك في مواقف تحتاج فيها إلى التراجع عن تغييرات قمت بها، سواء كانت تغييرات لم تلتزم بها بعد، أو تغييرات تم الالتزام بها بالفعل. أحد الأوامر المفيدة جدًا للتعامل مع هذه المواقف هو `git restore`. يهدف هذا المقال إلى تقديم شرح مفصل لأمر `git restore`، وكيفية استخدامه لاستعادة الملفات إلى حالاتها السابقة، مع التركيز على السيناريوهات الأكثر شيوعًا.


== فهم الأساسيات ==
'''ما هو `git restore`؟'''


قبل الغوص في تفاصيل `git restore`، من المهم فهم بعض المفاهيم الأساسية في Git:
`git restore` هو أمر حديث نسبياً في Git (تم تقديمه في الإصدار 2.23)، وهو مصمم ليكون أكثر وضوحًا وبديلًا لأوامر مثل `git checkout` و `git reset` في بعض الحالات. بشكل عام، يسمح لك `git restore` بإعادة ملفات أو مجلدات إلى حالة سابقة، سواء من منطقة [[Staging Area]] أو من آخر [[Commit]].  يفصل هذا الأمر بين استعادة الملفات من منطقة التحضير (staging area) و التراجع عن الالتزامات (committing)، مما يقلل من الالتباس الذي قد يسببه `git checkout`.


'''مستودع Git (Git Repository):''' هو المكان الذي يتم فيه تخزين جميع ملفات مشروعك وتاريخ التغييرات.
'''سيناريوهات استخدام `git restore`'''
*  '''منطقة التجهيز (Staging Area):''' هي منطقة وسيطة حيث تقوم بتحديد التغييرات التي تريد تضمينها في الالتزام التالي.
*  '''رأس (HEAD):''' يشير إلى آخر التزام في الفرع الحالي.
*  '''الفروع (Branches):''' تسمح لك بالعمل على ميزات أو إصلاحات بشكل مستقل دون التأثير على الكود الرئيسي.
*  '''الالتزامات (Commits):''' هي لقطات محفوظة من التغييرات في مستودعك.


== استخدام Git Restore ==
*  **التراجع عن تغييرات غير ملتزم بها:** إذا قمت بإجراء تغييرات على ملف ولم تقم بإضافته إلى منطقة التحضير (staging area) بعد، يمكنك استخدام `git restore` للتراجع عن هذه التغييرات واستعادة الملف إلى حالته في آخر التزام.


أمر `git restore` لديه عدة استخدامات رئيسية:
*  **إلغاء التغييرات في منطقة التحضير:**  إذا أضفت ملفًا إلى منطقة التحضير (staging area) ثم قررت أنك لا تريد تضمين هذه التغييرات في الالتزام التالي، يمكنك استخدام `git restore` لإزالة الملف من منطقة التحضير.


1.  '''استعادة ملف واحد:''' لاستعادة ملف واحد إلى حالته في التزام معين، استخدم الأمر التالي:
*  **استعادة ملف من التزام سابق:** يمكنك استخدام `git restore` لاستعادة إصدار سابق من ملف من التزام معين. هذا مفيد إذا أردت التراجع عن تغييرات تم الالتزام بها بالفعل.


    ```
'''طرق استخدام `git restore`'''
    git restore --source <commit> <file>
    ```


    حيث:
'''1. التراجع عن التغييرات غير الملتزم بها'''


    *  `<commit>`: هو معرف الالتزام (SHA-1 hash) الذي تريد الاستعادة منه. يمكنك العثور على معرف الالتزام باستخدام `git log`.
للتراجع عن التغييرات في ملف واحد:
    *  `<file>`: هو اسم الملف الذي تريد استعادته.


    مثال:
```
    ```
git restore <اسم_الملف>
    git restore --source HEAD^ README.md
```
    ```
    هذا الأمر يستعيد ملف `README.md` إلى حالته في الالتزام السابق.


2.  '''استعادة ملفات متعددة:''' يمكنك استعادة ملفات متعددة في وقت واحد عن طريق سردها بعد الأمر `git restore`.
مثال:


    ```
```
    git restore --source <commit> <file1> <file2> ...
git restore index.html
    ```
```


3. '''استعادة دليل:''' لاستعادة دليل بالكامل إلى حالة سابقة، استخدم الأمر:
سيؤدي هذا إلى استعادة `index.html` إلى حالته في آخر التزام.


    ```
للتراجع عن التغييرات في جميع الملفات غير الملتزم بها:
    git restore --source <commit> <directory>
    ```


4. '''استعادة ملفات غير مُرحلة (Unstaged Files):''' لاستعادة التغييرات في ملفات لم يتم إضافتها إلى منطقة التجهيز، استخدم الخيار `--staged`.
```
git restore .
```


    ```
'''2. إلغاء التغييرات في منطقة التحضير'''
    git restore --staged <file>
    ```


5.  '''استعادة الملفات المُرحلة (Staged Files):''' لإزالة الملفات من منطقة التجهيز دون استعادة التغييرات في دليل العمل، استخدم الخيار `--staged`.
لإزالة ملف من منطقة التحضير:


    ```
```
    git restore --staged <file>
git restore --staged <اسم_الملف>
    ```
```


== مقارنة Git Restore بـ Git Checkout ==
مثال:


في الإصدارات القديمة من Git، كان `git checkout` يستخدم غالبًا لاستعادة الملفات. ومع ذلك، `git restore` هو الأمر المفضل الآن لاستعادة الملفات، بينما يجب استخدام `git checkout` للتبديل بين [[الفروع]] أو الالتزامات.
```
git restore --staged styles.css
```


| الأمر      | الوظيفة                                |
سيؤدي هذا إلى إزالة `styles.css` من منطقة التحضير، ولكن التغييرات ستظل موجودة في دليل العمل.
|------------|-----------------------------------------|
| `git restore` | استعادة الملفات أو الدلائل إلى حالة سابقة |
| `git checkout`| التبديل بين الفروع أو الالتزامات          |


== أمثلة عملية ==
لإزالة جميع الملفات من منطقة التحضير:


*  '''إلغاء التغييرات الأخيرة:''' إذا قمت بإجراء تغييرات على ملف وتريد إلغائها، يمكنك استخدام `git restore` لاستعادة الملف إلى آخر التزام.
```
*  '''استعادة ملف محذوف:''' إذا حذفت ملفًا عن طريق الخطأ، يمكنك استخدام `git restore` لاستعادته من آخر التزام.
git restore --staged .
*  '''إعادة حالة المستودع:''' إذا أردت إعادة المستودع إلى حالة معينة، يمكنك استخدام `git restore` لاستعادة جميع الملفات إلى تلك الحالة.
```


== اعتبارات هامة ==
'''3. استعادة ملف من التزام سابق'''


*  `git restore` لا يؤثر على الالتزامات الموجودة في [[التاريخ]]. إنه ببساطة يستعيد الملفات إلى حالة سابقة في دليل العمل الخاص بك.
لإستعادة ملف من التزام معين، تحتاج إلى معرفة [[Hash]] الالتزام. يمكنك الحصول على ذلك باستخدام أمر `git log`.
*  تأكد من فهمك للالتزام الذي تستعيد منه قبل استخدام `git restore`.
*  يمكن أن يؤدي استخدام `git restore` إلى فقدان البيانات إذا لم يتم استخدامه بحذر.


== استراتيجيات متقدمة ==
```
git log
```


*  '''استخدام Git Bisect:''' لتحديد الالتزام الذي تسبب في خطأ ما. [[Git Bisect]]
بعد الحصول على الـ Hash، استخدم الأمر التالي:
*  '''استخدام Git Reflog:''' لعرض سجل جميع التغييرات في رأس المستودع، بما في ذلك التغييرات التي لم يتم الالتزام بها. [[Git Reflog]]
*  '''استخدام Git Reset:''' لإعادة تعيين الفرع الحالي إلى التزام معين. [[Git Reset]]
*  '''تحليل حجم التداول (Volume Analysis):''' لفهم قوة الاتجاهات في السوق. [[Volume Analysis]]
*  '''مؤشر القوة النسبية (RSI):''' لتحديد ظروف ذروة الشراء والبيع. [[RSI]]
*  '''التقارب والتباعد المتوسط المتحرك (MACD):''' لتحديد اتجاهات الزخم. [[MACD]]
*  '''خطوط بولينجر (Bollinger Bands):''' لقياس التقلبات. [[Bollinger Bands]]
*  '''مستويات فيبوناتشي (Fibonacci Levels):''' لتحديد مستويات الدعم والمقاومة المحتملة. [[Fibonacci Levels]]
*  '''استراتيجية الاختراق (Breakout Strategy):''' لتحديد نقاط الدخول والخروج بناءً على الاختراقات. [[Breakout Strategy]]
*  '''استراتيجية التداول المتأرجح (Swing Trading Strategy):''' للاستفادة من تقلبات الأسعار على المدى القصير. [[Swing Trading Strategy]]
*  '''استراتيجية التداول اليومي (Day Trading Strategy):''' لإجراء صفقات قصيرة الأجل خلال يوم التداول الواحد. [[Day Trading Strategy]]
*  '''استراتيجية سكالبينج (Scalping Strategy):''' لتحقيق أرباح صغيرة من خلال إجراء العديد من الصفقات. [[Scalping Strategy]]
*  '''تحليل الشموع اليابانية (Candlestick Pattern Analysis):''' لتحديد أنماط الأسعار التي قد تشير إلى تحركات مستقبلية. [[Candlestick Pattern Analysis]]
*  '''تحليل الموجات إليوت (Elliott Wave Analysis):''' لتحديد الأنماط المتكررة في الأسعار. [[Elliott Wave Analysis]]
*  '''تحليل الدعم والمقاومة (Support and Resistance Analysis):''' لتحديد مستويات الأسعار الرئيسية التي قد تتوقف عندها الحركة السعرية. [[Support and Resistance Analysis]]


== الخلاصة ==
```
git restore --source=<Hash> <اسم_الملف>
```


`git restore` هو أداة قوية ومرنة لاستعادة الملفات والدلائل إلى حالة سابقة في مستودع Git. من خلال فهم كيفية استخدام `git restore` بشكل صحيح، يمكنك بسهولة إلغاء التغييرات غير المرغوب فيها، واستعادة الملفات المحذوفة، وإدارة تاريخ مشروعك بفعالية. تذكر دائمًا توخي الحذر عند استخدام هذا الأمر لتجنب فقدان البيانات.
مثال:


[[Git]]
```
git restore --source=a1b2c3d4 index.html
```
 
سيؤدي هذا إلى استعادة `index.html` إلى حالته في الالتزام المحدد بواسطة `a1b2c3d4`.
 
'''الفرق بين `git restore` و `git checkout`'''
 
في الإصدارات القديمة من Git، كان `git checkout` يستخدم غالبًا لاستعادة الملفات. ومع ذلك، كان `git checkout` له استخدامات متعددة، مما قد يؤدي إلى الارتباك.  `git restore` يركز بشكل خاص على استعادة الملفات، مما يجعله أكثر وضوحًا وسهولة في الاستخدام.  `git checkout` لا يزال يستخدم لتغيير الفروع (branches).
 
'''الفرق بين `git restore` و `git reset`'''
 
`git reset` هو أمر أكثر قوة من `git restore`.  `git reset` يمكنه التراجع عن التزامات متعددة، بينما `git restore` يركز على استعادة الملفات الفردية أو المجموعات الصغيرة من الملفات. استخدام `git reset` بشكل غير صحيح يمكن أن يؤدي إلى فقدان البيانات، لذا يجب استخدامه بحذر.
 
'''نصائح إضافية'''
 
*  استخدم `git status` بشكل متكرر للتحقق من حالة دليل العمل ومنطقة التحضير.
*  قبل استخدام `git restore`، تأكد من فهمك تمامًا للتغييرات التي ستقوم بها.
*  يمكنك استخدام `git diff` لمراجعة التغييرات قبل استعادتها.
*  تعرّف على أمر `git commit` و `git branch` و `git merge` و `git rebase` لفهم كامل لعملية التحكم بالإصدار.
 
'''استراتيجيات تداول الخيارات الثنائية ذات الصلة (للمبتدئين)'''
 
*  [[استراتيجية مارتينجال]]
*  [[استراتيجية المضاعفة]]
*  [[استراتيجية المتوسط المتحرك]]
*  [[استراتيجية بولينجر باند]]
*  [[استراتيجية RSI]]
 
'''تحليل فني وتحليل حجم التداول (للمبتدئين)'''
 
*  [[الشموع اليابانية]]
*  [[خطوط الاتجاه]]
*  [[مستويات الدعم والمقاومة]]
*  [[مؤشر القوة النسبية (RSI)]]
*  [[مؤشر المتوسط المتحرك البسيط (SMA)]]
*  [[مؤشر المتوسط المتحرك الأسي (EMA)]]
*  [[مؤشر الماكد (MACD)]]
*  [[مؤشر ستوكاستيك]]
*  [[تحليل حجم التداول]]
*  [[مؤشر التوازن بين حجمي الشراء والبيع (OBV)]]
*  [[مؤشر ADX]]
*  [[نماذج الشموع الانعكاسية]]
*  [[نماذج الشموع الاستمرارية]]
*  [[نظرية إليوت الموجية]]
*  [[مستويات فيبوناتشي]]
 
'''ملاحظة هامة:''' تداول الخيارات الثنائية ينطوي على مخاطر عالية.  من الضروري فهم هذه المخاطر قبل البدء في التداول.
 
[[التحكم في الإصدار]]
[[Git Branching]]
[[Git Commit]]
[[Git Commit]]
[[Git Branch]]
[[Git Log]]
[[Git History]]
[[Git Status]]
[[Git Staging Area]]
[[Git Diff]]
[[Git Reset]]
[[Git Reflog]]
[[Git Checkout]]
[[Git Merge]]
[[Git Merge]]
[[Git Rebase]]
[[Git Rebase]]
[[Git Staging Area]]
[[Git Hash]]
[[Git Configuration]]
[[Git Ignore]]
[[Git Remote]]
[[Git Clone]]
[[Git Clone]]
[[Git Push]]
[[Git Push]]
[[Git Pull]]
[[Git Pull]]
[[Git Status]]
[[Git Fetch]]
[[Git Log]]
[[Git Tag]]
[[Git Diff]]
[[Git Submodule]]
[[Git Ignore]]
[[Git Attributes]]
[[Git Attributes]]
[[Git Config]]
[[Git Help]]
[[أنظمة التحكم في الإصدار]]


[[Category:الفئة:أنظمة_التحكم_في_الإصدار]]
[[Category:**الفئة:أنظمة التحكم بالإصدار**]


== ابدأ التداول الآن ==
== ابدأ التداول الآن ==
Line 136: Line 160:
✓ تنبيهات باتجاهات السوق
✓ تنبيهات باتجاهات السوق
✓ مواد تعليمية للمبتدئين
✓ مواد تعليمية للمبتدئين
[[Category:Git]]

Latest revision as of 15:36, 6 May 2025

    1. استعادة الملفات في Git: دليل شامل للمبتدئين

مقدمة

تُعدّ Git نظام تحكم بالإصدار موزع، قوي وشائع الاستخدام لتتبع التغييرات في الملفات. أثناء العمل مع Git، قد تجد نفسك في مواقف تحتاج فيها إلى التراجع عن تغييرات قمت بها، سواء كانت تغييرات لم تلتزم بها بعد، أو تغييرات تم الالتزام بها بالفعل. أحد الأوامر المفيدة جدًا للتعامل مع هذه المواقف هو `git restore`. يهدف هذا المقال إلى تقديم شرح مفصل لأمر `git restore`، وكيفية استخدامه لاستعادة الملفات إلى حالاتها السابقة، مع التركيز على السيناريوهات الأكثر شيوعًا.

ما هو `git restore`؟

`git restore` هو أمر حديث نسبياً في Git (تم تقديمه في الإصدار 2.23)، وهو مصمم ليكون أكثر وضوحًا وبديلًا لأوامر مثل `git checkout` و `git reset` في بعض الحالات. بشكل عام، يسمح لك `git restore` بإعادة ملفات أو مجلدات إلى حالة سابقة، سواء من منطقة Staging Area أو من آخر Commit. يفصل هذا الأمر بين استعادة الملفات من منطقة التحضير (staging area) و التراجع عن الالتزامات (committing)، مما يقلل من الالتباس الذي قد يسببه `git checkout`.

سيناريوهات استخدام `git restore`

  • **التراجع عن تغييرات غير ملتزم بها:** إذا قمت بإجراء تغييرات على ملف ولم تقم بإضافته إلى منطقة التحضير (staging area) بعد، يمكنك استخدام `git restore` للتراجع عن هذه التغييرات واستعادة الملف إلى حالته في آخر التزام.
  • **إلغاء التغييرات في منطقة التحضير:** إذا أضفت ملفًا إلى منطقة التحضير (staging area) ثم قررت أنك لا تريد تضمين هذه التغييرات في الالتزام التالي، يمكنك استخدام `git restore` لإزالة الملف من منطقة التحضير.
  • **استعادة ملف من التزام سابق:** يمكنك استخدام `git restore` لاستعادة إصدار سابق من ملف من التزام معين. هذا مفيد إذا أردت التراجع عن تغييرات تم الالتزام بها بالفعل.

طرق استخدام `git restore`

1. التراجع عن التغييرات غير الملتزم بها

للتراجع عن التغييرات في ملف واحد:

``` git restore <اسم_الملف> ```

مثال:

``` git restore index.html ```

سيؤدي هذا إلى استعادة `index.html` إلى حالته في آخر التزام.

للتراجع عن التغييرات في جميع الملفات غير الملتزم بها:

``` git restore . ```

2. إلغاء التغييرات في منطقة التحضير

لإزالة ملف من منطقة التحضير:

``` git restore --staged <اسم_الملف> ```

مثال:

``` git restore --staged styles.css ```

سيؤدي هذا إلى إزالة `styles.css` من منطقة التحضير، ولكن التغييرات ستظل موجودة في دليل العمل.

لإزالة جميع الملفات من منطقة التحضير:

``` git restore --staged . ```

3. استعادة ملف من التزام سابق

لإستعادة ملف من التزام معين، تحتاج إلى معرفة Hash الالتزام. يمكنك الحصول على ذلك باستخدام أمر `git log`.

``` git log ```

بعد الحصول على الـ Hash، استخدم الأمر التالي:

``` git restore --source=<Hash> <اسم_الملف> ```

مثال:

``` git restore --source=a1b2c3d4 index.html ```

سيؤدي هذا إلى استعادة `index.html` إلى حالته في الالتزام المحدد بواسطة `a1b2c3d4`.

الفرق بين `git restore` و `git checkout`

في الإصدارات القديمة من Git، كان `git checkout` يستخدم غالبًا لاستعادة الملفات. ومع ذلك، كان `git checkout` له استخدامات متعددة، مما قد يؤدي إلى الارتباك. `git restore` يركز بشكل خاص على استعادة الملفات، مما يجعله أكثر وضوحًا وسهولة في الاستخدام. `git checkout` لا يزال يستخدم لتغيير الفروع (branches).

الفرق بين `git restore` و `git reset`

`git reset` هو أمر أكثر قوة من `git restore`. `git reset` يمكنه التراجع عن التزامات متعددة، بينما `git restore` يركز على استعادة الملفات الفردية أو المجموعات الصغيرة من الملفات. استخدام `git reset` بشكل غير صحيح يمكن أن يؤدي إلى فقدان البيانات، لذا يجب استخدامه بحذر.

نصائح إضافية

  • استخدم `git status` بشكل متكرر للتحقق من حالة دليل العمل ومنطقة التحضير.
  • قبل استخدام `git restore`، تأكد من فهمك تمامًا للتغييرات التي ستقوم بها.
  • يمكنك استخدام `git diff` لمراجعة التغييرات قبل استعادتها.
  • تعرّف على أمر `git commit` و `git branch` و `git merge` و `git rebase` لفهم كامل لعملية التحكم بالإصدار.

استراتيجيات تداول الخيارات الثنائية ذات الصلة (للمبتدئين)

تحليل فني وتحليل حجم التداول (للمبتدئين)

ملاحظة هامة: تداول الخيارات الثنائية ينطوي على مخاطر عالية. من الضروري فهم هذه المخاطر قبل البدء في التداول.

التحكم في الإصدار Git Branching Git Commit Git Log Git Status Git Diff Git Merge Git Rebase Git Staging Area Git Hash Git Configuration Git Ignore Git Remote Git Clone Git Push Git Pull Git Fetch Git Tag Git Submodule Git Attributes

[[Category:**الفئة:أنظمة التحكم بالإصدار**]

ابدأ التداول الآن

سجل في IQ Option (الحد الأدنى للإيداع $10) افتح حساباً في Pocket Option (الحد الأدنى للإيداع $5)

انضم إلى مجتمعنا

اشترك في قناة Telegram الخاصة بنا @strategybin للحصول على: ✓ إشارات تداول يومية ✓ تحليلات استراتيجية حصرية ✓ تنبيهات باتجاهات السوق ✓ مواد تعليمية للمبتدئين

Баннер