Git Checkout: Difference between revisions

From binaryoption
Jump to navigation Jump to search
Баннер1
(@pipegas_WP)
 
(@pipegas_WP)
Line 1: Line 1:
## Git Checkout: دليل شامل للمبتدئين
=== Git Checkout: دليل شامل للمبتدئين ===


'''Git Checkout''' هو أمر بالغ الأهمية في نظام [[Git]] للتحكم في الإصدار، وهو الأساس لأي شخص يعمل على مشاريع برمجية، سواء كان مطورًا، أو مصممًا، أو حتى محلل بيانات. يسمح لك هذا الأمر بالتبديل بين الفروع المختلفة في مستودع Git، واستعادة الملفات من اللحظات السابقة، وحتى تجاهل التغييرات غير المرغوب فيها. في هذا المقال، سنستكشف Git Checkout بتعمق، ونقدم شرحًا مفصلًا للمبتدئين، مع أمثلة عملية لتوضيح كيفية استخدامه بفعالية.
'''Git Checkout''' هي واحدة من أكثر الأوامر استخدامًا في نظام التحكم في الإصدار [[Git]]. فهم هذا الأمر ضروري لأي شخص يعمل على مشروع يستخدم Git، سواء كنت مطور برامج، مصمم ويب، أو حتى تتعامل مع مشاريع بيانات. يتيح لك أمر Checkout التنقل بين [[الفروع (Branches)]] المختلفة، [[الالتزامات (Commits)]]، وحتى استعادة الملفات المحذوفة. هذا المقال يهدف إلى تقديم شرح مفصل لـ `git checkout` للمبتدئين، مع أمثلة عملية وشرح للمفاهيم الأساسية.


== ما هو Git Checkout؟ ==
== ما هو Git Checkout؟ ==


ببساطة، Git Checkout هو الأمر الذي يسمح لك بتغيير محتوى دليل عملك ليعكس حالة معينة في [[تاريخ Git]]. يمكن أن تكون هذه الحالة فرعًا (Branch)، أو التزامًا (Commit)، أو حتى علامة (Tag). تخيل أنك تعمل على مشروع كبير، وتقوم بتجربة ميزات جديدة في فرع منفصل. باستخدام Git Checkout، يمكنك الانتقال بسهولة بين الفرع الرئيسي (Main Branch) والفرع الذي يحتوي على الميزات الجديدة، دون التأثير على العمل في الفرع الآخر.
ببساطة، `git checkout` يقوم بتحديث ملفات مشروعك لتعكس حالة محددة في [[سجل (History)]] Git. هذه الحالة يمكن أن تكون:
 
*  '''فرع (Branch):'''  ينقلك إلى فرع آخر في مشروعك، مما يسمح لك بالعمل على ميزات جديدة أو إصلاح الأخطاء بشكل معزول.
*  '''التزام (Commit):'''  يعود بملفاتك إلى حالة معينة في الماضي، كما كانت عند الالتزام المحدد.
*  '''ملف محدد (Specific File):''' يستعيد نسخة معينة من ملف من التزام سابق، دون التأثير على بقية المشروع.
 
== بناء الجملة (Syntax) ==
 
الصيغة الأساسية لأمر `git checkout` هي:
 
```
git checkout <الهدف>
```
 
حيث `<الهدف>` يمكن أن يكون:
 
*  اسم الفرع (Branch Name)
*  معرف الالتزام (Commit Hash)
*  مسار الملف (File Path)


== استخدامات Git Checkout ==
== استخدامات Git Checkout ==


هناك ثلاثة استخدامات رئيسية لأمر Git Checkout:
### 1. الانتقال بين الفروع
 
هذه هي الحالة الأكثر شيوعًا لاستخدام `git checkout`.  للانتقال إلى فرع موجود، استخدم الأمر التالي:
 
```
git checkout <اسم_الفرع>
```
 
على سبيل المثال، للانتقال إلى فرع باسم `develop`:
 
```
git checkout develop
```
 
سيقوم هذا الأمر بتحديث ملفات مشروعك لتعكس الحالة الموجودة في الفرع `develop`.  إذا كانت لديك تغييرات غير ملتزمة (Uncommitted Changes) في الفرع الحالي، فقد يرفض Git عملية الانتقال لحماية بياناتك.  يمكنك استخدام `git stash` لحفظ هذه التغييرات مؤقتًا قبل الانتقال.  راجع [[Git Stash]] لمزيد من المعلومات.


* '''التبديل بين الفروع:'''  هذا هو الاستخدام الأكثر شيوعًا. باستخدام `git checkout <اسم_الفرع>`, يمكنك الانتقال إلى فرع معين. على سبيل المثال، `git checkout develop` سيقوم بتبديلك إلى الفرع المسمى "develop".
### 2. إنشاء فرع والانتقال إليه
* '''استعادة ملفات من التزامات سابقة:'''  إذا قمت بإجراء تغييرات غير مرغوب فيها على ملف، يمكنك استعادته من التزام سابق باستخدام `git checkout <رقم_الالتزام> -- <اسم_الملف>`.  سيؤدي هذا إلى استبدال الملف الحالي بالإصدار الموجود في الالتزام المحدد.
* '''التجاهل (Discarding) التغييرات المحلية:'''  إذا قمت بإجراء تغييرات على ملفاتك المحلية ولكنك لا تريد الاحتفاظ بها، يمكنك تجاهلها باستخدام `git checkout -- <اسم_الملف>`.  سيؤدي هذا إلى استبدال الملفات المحلية بالإصدار الموجود في آخر التزام.


== أمثلة عملية ==
يمكنك إنشاء فرع جديد والانتقال إليه في خطوة واحدة باستخدام الخيار `-b`:


دعنا نلقي نظرة على بعض الأمثلة العملية لتوضيح كيفية استخدام Git Checkout:
```
git checkout -b <اسم_الفرع_الجديد>
```


* '''التبديل إلى فرع جديد:'''
على سبيل المثال، لإنشاء فرع جديد باسم `feature/new-feature` والانتقال إليه:


```bash
```
git checkout -b feature/new-feature
git checkout -b feature/new-feature
```
```


هذا الأمر يقوم بإنشاء فرع جديد باسم "feature/new-feature" ثم يتبدّل إليه مباشرةً.  الخيار `-b` هو اختصار لـ `git branch feature/new-feature` ثم `git checkout feature/new-feature`.
هذا الأمر يعادل تنفيذ `git branch feature/new-feature` متبوعًا بـ `git checkout feature/new-feature`.


* '''استعادة ملف من التزام سابق:'''
### 3. استعادة التزام سابق


أولاً، يجب عليك معرفة رقم الالتزام الذي تريد استعادة الملف منه. يمكنك استخدام `git log` لعرض تاريخ الالتزامات. ثم، استخدم الأمر التالي:
يمكنك استخدام `git checkout` للرجوع إلى حالة مشروعك في التزام سابق.  للقيام بذلك، تحتاج إلى معرفة [[Hash]] الخاص بالالتزام. يمكنك الحصول على Hash من خلال استخدام الأمر `git log`.


```bash
```
git checkout <رقم_الالتزام> -- path/to/file.txt
git checkout <معرف_الالتزام>
```
```


* '''التجاهل التغييرات المحلية:'''
على سبيل المثال، إذا كان Hash الخاص بالالتزام هو `a1b2c3d4e5f6`, فستكون الأوامر:


```bash
git checkout -- path/to/file.txt
```
```
git checkout a1b2c3d4e5f6
```
**تحذير:** سيضعك هذا الأمر في حالة "detached HEAD".  في هذه الحالة، لا تشير `HEAD` إلى أي فرع. أي التزامات جديدة تقوم بها لن تكون جزءًا من أي فرع، وقد تفقدها إذا لم تنشئ فرعًا جديدًا منها.  لإصلاح ذلك، قم بإنشاء فرع جديد من هذه النقطة باستخدام `git checkout -b <اسم_الفرع_الجديد>`.


هذا الأمر سيؤدي إلى تجاهل أي تغييرات قمت بها على الملف "file.txt" وإعادته إلى حالته في آخر التزام.
### 4. استعادة ملف محدد من التزام سابق


== الفرق بين Git Checkout و Git Switch و Git Restore ==
يمكنك استعادة نسخة معينة من ملف من التزام سابق دون التأثير على بقية المشروع.


في الإصدارات الأحدث من Git (2.23 والإصدارات الأحدث)، تم تقديم أوامر جديدة لتسهيل بعض المهام التي كان يؤديها Git Checkout.  وهذه الأوامر هي:
```
git checkout <معرف_الالتزام> -- <مسار_الملف>
```


* '''Git Switch:'''  يستخدم بشكل أساسي للتبديل بين الفروع. أكثر وضوحًا من استخدام `git checkout` للتبديل بين الفروع.
على سبيل المثال، لاستعادة النسخة القديمة من ملف `index.html` من الالتزام `a1b2c3d4e5f6`:
* '''Git Restore:''' يستخدم بشكل أساسي لاستعادة الملفات من التزامات سابقة أو تجاهل التغييرات المحليةأكثر وضوحًا من استخدام `git checkout` لهذه الأغراض.
 
```
git checkout a1b2c3d4e5f6 -- index.html
```
 
سيقوم هذا الأمر باستبدال النسخة الحالية من `index.html` بالنسخة الموجودة في الالتزام المحدد.
 
== Git Checkout مقابل Git Switch ==
 
في الإصدارات الحديثة من Git (2.23 والإصدارات الأحدث)، تم تقديم أمر جديد `git switch` كبديل أكثر وضوحًا لـ `git checkout` لبعض الحالات`git switch` مصمم خصيصًا للانتقال بين الفروع، بينما يركز `git checkout` على استعادة الملفات أو الالتزاماتعلى الرغم من أن `git checkout` لا يزال يعمل بشكل كامل، فإن استخدام `git switch` للانتقال بين الفروع يمكن أن يجعل نيتك أكثر وضوحًا.
 
== أمثلة عملية ==


على الرغم من أن Git Checkout لا يزال يعمل، إلا أن Git Switch و Git Restore يعتبران أكثر أمانًا وأسهل في الاستخدام لبعض المهام.
*  **العمل على ميزة جديدة:**  `git checkout -b feature/login-form`
*  **العودة إلى آخر إصدار مستقر:** `git checkout main` (أو `master` حسب اصطلاح التسمية في مشروعك)
*  **إصلاح خطأ في فرع `develop`:** `git checkout develop`
*  **استعادة ملف تم حذفه عن طريق الخطأ:** `git checkout HEAD -- path/to/deleted/file`
*  **مقارنة ملفين من التزامات مختلفة:** `git diff <التزام1>:<مسار_الملف> <التزام2>:<مسار_الملف>`


== نصائح هامة ==
== نصائح وأفضل الممارسات ==


* '''احرص على الالتزام بتغييراتك قبل التبديل بين الفروع:''' تأكد من أنك قد قمت بحفظ جميع التغييرات التي قمت بها قبل التبديل إلى فرع آخر.  وإلا، فقد تفقد عملك.
*   **احفظ عملك بشكل متكرر:** قم بعمل التزامات (Commits) صغيرة وذات معنى.
* '''استخدم `git status` للتحقق من حالتك:'''  يُظهر الأمر `git status` حالتك الحالية في مستودع Git، بما في ذلك الفرع الذي أنت فيه، والتغييرات التي لم يتم الالتزام بها.
*  **استخدم الفروع (Branches):** اعزل عملك على ميزات جديدة أو إصلاح الأخطاء في فروع منفصلة.
* '''فهم الفرق بين `git checkout` و `git merge` و `git rebase` :''' هذه الأوامر الثلاثة تستخدم للتعامل مع الفروع، وكل منها له غرض مختلف. [[Git Merge]] يدمج فرعين معًا، بينما [[Git Rebase]] يعيد تطبيق سلسلة من الالتزامات على فرع آخر.
*   **راجع سجل Git:** استخدم `git log` لفهم تاريخ مشروعك.
*  **استخدم `git stash`:**  لحفظ التغييرات غير الملتزمة قبل الانتقال بين الفروع.
*   **كن حذرًا مع `detached HEAD`:** تأكد من إنشاء فرع جديد إذا كنت تعمل في حالة `detached HEAD`.


== الروابط ذات الصلة ==
== مفاهيم ذات صلة ==


* [[Git]]
*   [[Git Branch]]
* [[Git Branch]]
*   [[Git Commit]]
* [[Git Commit]]
*   [[Git Log]]
* [[Git Log]]
*   [[Git Stash]]
* [[Git Merge]]
*   [[Git Merge]]
* [[Git Rebase]]
*   [[Git Rebase]]
* [[Git Status]]
*   [[Git Reset]]
* [[Git Stash]]
*   [[Git Diff]]
* [[Git Reset]]
*   [[Git Status]]
* [[Git Diff]]
*   [[Git Clone]]
* [[Remote Repositories]]
*   [[Git Push]]
* [[GitHub]]
*   [[Git Pull]]
* [[GitLab]]
*   [[Git Remote]]
* [[Bitbucket]]
*   [[Git Ignore]]
* [[تشغيل سطر الأوامر]]
*   [[Git Attributes]]


== استراتيجيات التحليل الفني والتداول ==
== استراتيجيات تداول الخيارات الثنائية والتحليل الفني/الحجم ==


* [[التحليل الموجي لإليوت]]
*   [[استراتيجية المضاعفة (Martingale Strategy)]]
* [[مؤشر القوة النسبية (RSI)]]
*   [[استراتيجية المتوسط المتحرك (Moving Average Strategy)]]
* [[التقارب والتباعد للمتوسطات المتحركة (MACD)]]
*   [[استراتيجية اختراق النطاق (Breakout Strategy)]]
* [[مستويات فيبوناتشي]]
*   [[تحليل الاتجاه (Trend Analysis)]]
* [[أنماط الشموع اليابانية]]
*   [[مؤشر القوة النسبية (RSI)]]
* [[تحليل حجم التداول]]
*   [[مؤشر الماكد (MACD)]]
* [[استراتيجية الاختراق]]
*   [[تحليل حجم التداول (Volume Analysis)]]
* [[استراتيجية الارتداد]]
*   [[أنماط الشموع اليابانية (Candlestick Patterns)]]
* [[استراتيجية المتوسطات المتحركة]]
*   [[نظرية الموجات الإليوت (Elliott Wave Theory)]]
* [[استراتيجية بولينجر باندز]]
*   [[تصحيح فيبوناتشي (Fibonacci Retracement)]]
* [[تداول النطاق]]
*   [[استراتيجية البولينجر باند (Bollinger Bands Strategy)]]
* [[تداول الاتجاه]]
*   [[استراتيجية ستوكاستيك (Stochastic Oscillator Strategy)]]
* [[إدارة المخاطر في التداول]]
*   [[استراتيجية الاختناق (Straddle Strategy)]]
* [[تحليل أساسي للعملات المشفرة]]
*   [[استراتيجية الفراشة (Butterfly Strategy)]]
* [[تحليل المشاعر في السوق]]
*   [[تحليل الدعم والمقاومة (Support and Resistance Analysis)]]


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


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

Revision as of 01:36, 24 April 2025

Git Checkout: دليل شامل للمبتدئين

Git Checkout هي واحدة من أكثر الأوامر استخدامًا في نظام التحكم في الإصدار Git. فهم هذا الأمر ضروري لأي شخص يعمل على مشروع يستخدم Git، سواء كنت مطور برامج، مصمم ويب، أو حتى تتعامل مع مشاريع بيانات. يتيح لك أمر Checkout التنقل بين الفروع (Branches) المختلفة، الالتزامات (Commits)، وحتى استعادة الملفات المحذوفة. هذا المقال يهدف إلى تقديم شرح مفصل لـ `git checkout` للمبتدئين، مع أمثلة عملية وشرح للمفاهيم الأساسية.

ما هو Git Checkout؟

ببساطة، `git checkout` يقوم بتحديث ملفات مشروعك لتعكس حالة محددة في سجل (History) Git. هذه الحالة يمكن أن تكون:

  • فرع (Branch): ينقلك إلى فرع آخر في مشروعك، مما يسمح لك بالعمل على ميزات جديدة أو إصلاح الأخطاء بشكل معزول.
  • التزام (Commit): يعود بملفاتك إلى حالة معينة في الماضي، كما كانت عند الالتزام المحدد.
  • ملف محدد (Specific File): يستعيد نسخة معينة من ملف من التزام سابق، دون التأثير على بقية المشروع.

بناء الجملة (Syntax)

الصيغة الأساسية لأمر `git checkout` هي:

``` git checkout <الهدف> ```

حيث `<الهدف>` يمكن أن يكون:

  • اسم الفرع (Branch Name)
  • معرف الالتزام (Commit Hash)
  • مسار الملف (File Path)

استخدامات Git Checkout

      1. 1. الانتقال بين الفروع

هذه هي الحالة الأكثر شيوعًا لاستخدام `git checkout`. للانتقال إلى فرع موجود، استخدم الأمر التالي:

``` git checkout <اسم_الفرع> ```

على سبيل المثال، للانتقال إلى فرع باسم `develop`:

``` git checkout develop ```

سيقوم هذا الأمر بتحديث ملفات مشروعك لتعكس الحالة الموجودة في الفرع `develop`. إذا كانت لديك تغييرات غير ملتزمة (Uncommitted Changes) في الفرع الحالي، فقد يرفض Git عملية الانتقال لحماية بياناتك. يمكنك استخدام `git stash` لحفظ هذه التغييرات مؤقتًا قبل الانتقال. راجع Git Stash لمزيد من المعلومات.

      1. 2. إنشاء فرع والانتقال إليه

يمكنك إنشاء فرع جديد والانتقال إليه في خطوة واحدة باستخدام الخيار `-b`:

``` git checkout -b <اسم_الفرع_الجديد> ```

على سبيل المثال، لإنشاء فرع جديد باسم `feature/new-feature` والانتقال إليه:

``` git checkout -b feature/new-feature ```

هذا الأمر يعادل تنفيذ `git branch feature/new-feature` متبوعًا بـ `git checkout feature/new-feature`.

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

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

``` git checkout <معرف_الالتزام> ```

على سبيل المثال، إذا كان Hash الخاص بالالتزام هو `a1b2c3d4e5f6`, فستكون الأوامر:

``` git checkout a1b2c3d4e5f6 ```

    • تحذير:** سيضعك هذا الأمر في حالة "detached HEAD". في هذه الحالة، لا تشير `HEAD` إلى أي فرع. أي التزامات جديدة تقوم بها لن تكون جزءًا من أي فرع، وقد تفقدها إذا لم تنشئ فرعًا جديدًا منها. لإصلاح ذلك، قم بإنشاء فرع جديد من هذه النقطة باستخدام `git checkout -b <اسم_الفرع_الجديد>`.
      1. 4. استعادة ملف محدد من التزام سابق

يمكنك استعادة نسخة معينة من ملف من التزام سابق دون التأثير على بقية المشروع.

``` git checkout <معرف_الالتزام> -- <مسار_الملف> ```

على سبيل المثال، لاستعادة النسخة القديمة من ملف `index.html` من الالتزام `a1b2c3d4e5f6`:

``` git checkout a1b2c3d4e5f6 -- index.html ```

سيقوم هذا الأمر باستبدال النسخة الحالية من `index.html` بالنسخة الموجودة في الالتزام المحدد.

Git Checkout مقابل Git Switch

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

أمثلة عملية

  • **العمل على ميزة جديدة:** `git checkout -b feature/login-form`
  • **العودة إلى آخر إصدار مستقر:** `git checkout main` (أو `master` حسب اصطلاح التسمية في مشروعك)
  • **إصلاح خطأ في فرع `develop`:** `git checkout develop`
  • **استعادة ملف تم حذفه عن طريق الخطأ:** `git checkout HEAD -- path/to/deleted/file`
  • **مقارنة ملفين من التزامات مختلفة:** `git diff <التزام1>:<مسار_الملف> <التزام2>:<مسار_الملف>`

نصائح وأفضل الممارسات

  • **احفظ عملك بشكل متكرر:** قم بعمل التزامات (Commits) صغيرة وذات معنى.
  • **استخدم الفروع (Branches):** اعزل عملك على ميزات جديدة أو إصلاح الأخطاء في فروع منفصلة.
  • **راجع سجل Git:** استخدم `git log` لفهم تاريخ مشروعك.
  • **استخدم `git stash`:** لحفظ التغييرات غير الملتزمة قبل الانتقال بين الفروع.
  • **كن حذرًا مع `detached HEAD`:** تأكد من إنشاء فرع جديد إذا كنت تعمل في حالة `detached HEAD`.

مفاهيم ذات صلة

استراتيجيات تداول الخيارات الثنائية والتحليل الفني/الحجم

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

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

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

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

Баннер