> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/ar/qaadh-almarfh/040-git-integration.md).

# تكامل Git

**تكامل Git في Overleaf** هي [ميزة مدفوعة](/latex/ar/qaadh-almarfh/120-overleaf-premium-features.md). تتوفر ميزات Overleaf المميزة للمشاركين في [Overleaf Commons](https://www.overleaf.com/for/universities)، وأعضاء مجموعة [الاشتراكات](https://www.overleaf.com/for/groups)، ومالكو اشتراكات فردية [الاشتراكات](https://www.overleaf.com/user/subscription/plans). يتوفر تكامل Git في Overleaf Cloud وOverleaf Server Pro (الإصدار 4.0 وما بعده).

### ما هو تكامل Git في Overleaf؟

يتيح لك تكامل Git في Overleaf الحصول على عنوان URL لـ Git من مشروعك في Overleaf والتعامل معه كمستودع Git بعيد (repo). يمكنك نسخ مشروعك إلى مستودع Git محلي والعمل على مشروعك محليًا، ودفع التغييرات إلى مشروعك من جهازك المحلي وسحب التحديثات التي تحدث في محرر Overleaf عبر الإنترنت إلى مستودعك المحلي.

يتيح لك ذلك العمل على مشروعك محليًا في الأوقات التي لا يكون فيها العمل عبر الإنترنت ممكنًا، واستخدام محرر محلي مختلف من اختيارك عند العمل على مشروع في Overleaf، أو إضافة المخرجات من برامج محلية أخرى بسهولة إلى مشروعك في Overleaf.

يمكنك الحصول على عنوان URL لـ Git وأمر الاستنساخ لمشروعك من خيار Git في قائمة Overleaf الخاصة بمشروعك.

![قائمة المشروع git.png](/files/3ea0a03e2a2f0ab0f9dddcd6fb68fddb3cb00307)

### كيفية المصادقة عند استخدام تكامل Git

عندما تنفذ عملية Git مثل الاستنساخ أو السحب أو الدفع إلى مشروعك البعيد في Overleaf، سيُطلب منك إجراء المصادقة.

للوصول إلى مشروعك في Overleaf من Git، يجب عليك استخدام المصادقة المستندة إلى رمز Overleaf. للاطلاع على التعليمات خطوة بخطوة، راجع: [المصادقة المستندة إلى رمز](/latex/ar/qaadh-almarfh/042-git-integration-authentication-tokens.md).

### استنساخ مشروعك كمستودع محلي

من [**القائمة**](/latex/ar/qaadh-almarfh/148-using-the-overleaf-project-menu.md) داخل مشروعك، يمكنك اختيار Git من خيارات المزامنة. سيؤدي ذلك إلى فتح مربع حوار يعرض `git clone` الأمر الذي يجب استخدامه عند إنشاء المستودع المحلي الخاص بك.

![قائمة المشروع git.png](/files/3ea0a03e2a2f0ab0f9dddcd6fb68fddb3cb00307)

وبدلاً من ذلك، يمكنك العثور على عنوان URL لـ Git من عنوان URL الخاص بالمشروع (العنوان الموجود في شريط عنوان المتصفح عندما تكون داخل مشروع).

#### Overleaf Cloud

إذا كنت تستخدم Overleaf Cloud ويبدو عنوان URL لمشروعك في Overleaf مثل:

```
https://www.overleaf.com/project/1234567
```

فإن عنوان URL لـ Git الذي يجب استخدامه لاستنساخ المشروع سيكون

```
https://git.overleaf.com/1234567
```

والأمر المستخدم لاستنساخ المشروع إلى مستودع Git محلي سيكون:

```
git clone https://git.overleaf.com/1234567
```

**ملاحظة**قد يُطلب منك اسم مستخدم وكلمة مرور. يُرجى الاطلاع على [المصادقة بكلمة المرور لتكامل Git](/latex/ar/qaadh-almarfh/043-git-integration-password-based-authentication.md)

#### Overleaf Server Pro (الإصدار 4.0 أو أحدث)

**ملاحظة**: لا يكون تكامل Git-bridge مفعّلًا افتراضيًا في Server Pro. يُرجى الاطلاع على [تكامل Git](https://github.com/overleaf/overleaf/wiki/Git-Integration) الدليل للحصول على تعليمات حول كيفية تفعيله.

إذا كنت تستخدم Overleaf Server Pro ويبدو عنوان URL لمشروعك كما يلي:

```
https://<SHARELATEX_SITE_URL>/project/1234567
```

فإن عنوان URL لـ Git المستخدم عند استنساخ المشروع سيكون:

```
https://git@<SHARELATEX_SITE_URL>/git/1234567
```

والأمر المستخدم لاستنساخ المشروع إلى مستودع Git محلي باستخدام سطر أوامر Git سيكون:

```
git clone git@<SHARELATEX_SITE_URL>/git/1234567
```

**ملاحظة**: قد يُطلب منك إدخال كلمة مرور. يُرجى الاطلاع على: [رموز المصادقة لتكامل Git](/latex/ar/qaadh-almarfh/042-git-integration-authentication-tokens.md)

### إنشاء مشروع Overleaf من مستودع Git موجود

إذا كان لديك مستودع موجود، يمكنك إضافة مشروع Overleaf كمستودع بعيد. توجد بعض الأوامر أدناه التي ستحتاج إلى تشغيلها لبدء العمل. يُرجى ملاحظة أن Overleaf يدعم فقط سجلًا خطيًا واحدًا لكل مشروع. يفرض تكامل Git هذا القيد من خلال تقييد عدد الفروع إلى فرع واحد. وهذا الفرع الواحد مضبوظ حاليًا بشكل ثابت ليكون اسمه `master`.

1. أولًا، نفترض أن لديك مستودع git على جهازك في مجلد يُسمى `my-paper`. (قد يكون أيضًا مستضافًا على GitHub أو GitLab أو Bitbucket، إلخ، ولكنك تحتاج أيضًا إلى أن يكون لديك نسخة مستنسخة منه محليًا.)
2. إنشاء [مشروع جديد](/latex/ar/qaadh-almarfh/031-creating-a-document-in-overleaf.md) في Overleaf. وبما أن أي محتوى في المشروع سيتم استبداله، استخدم خيار مشروع 'Blank' عند إنشاء هذا المشروع واحذف `main.tex` الملف في Overleaf.
3. اعثر على عنوان URL لـ Git الخاص بالمشروع (انظر [أعلاه](#cloning-your-project-as-a-local-repository)).

   ![Git-bridge-url.png](/files/41318b1d3ac82ff4be159f5a4bed4fdcad296293)
4. أضف عنوان URL لـ Git الخاص بالمشروع كمستودع بعيد في مشروعك المحلي.

   ```
   $ cd my-paper
   $ git remote add overleaf <GIT-URL>
   ```

   (تأكد من استخدام الرابط الخاص بك، وليس رابط المثال.)
5. اسحب أحدث المحتوى من مشروع Overleaf وادمجه في فرع master الخاص بك.

   ```
   $ git checkout master
   $ git pull overleaf master --allow-unrelated-histories --rebase=false
   ```
6. ادفع مشروعك إلى Overleaf.

   ```
   $ git push overleaf master --set-upstream
   ```

   إذا كنت تريد استخدام اسم فرع مختلف محليًا، مثل `my-branch`، فيمكنك دفع التغييرات باستخدام اسم مستعار:

   ```
   $ git push overleaf my-branch:master
   ```
7. زر المشروع على Overleaf. يجب أن تكون تغييراتك هناك. (قد تحتاج إلى فتح قائمة مشروع Overleaf لمعرفة أي ملف تم تعيينه كملف المستند الرئيسي، وربما تغيير هذا الاختيار الأولي.)

### التزامات Git وتكامل Git في Overleaf

لدى Overleaf [نظام السجل](/latex/ar/mzyd-mn-almwdhwaat/49-using-the-history-feature.md) داخلي يتيح التعاون المتزامن داخل مشروع Overleaf. هذا ليس نفسه Git، لذلك فإن تكامل Git في Overleaf هو في الأساس ترجمة من آلية السجل والإصدارات في Overleaf إلى Git. يتيح ذلك العديد من حالات الاستخدام المدعومة بـ Git، لكنه لا يتيح لك العمل داخل Overleaf كما لو كان تطبيقًا كاملًا لـ Git.

#### متى يتم إنشاء الالتزامات؟

عندما تنفذ أمر `pull` أو `fetch` ، وإذا لم يكن هناك التزام موجود للحالة الحالية للمشروع، يتم إنشاء التزام جديد ديناميكيًا. عندما تقوم بـ `push` الملفات من المستودع المحلي إلى المستودع البعيد في Overleaf، يتم إنشاء التزام في ذلك الوقت أيضًا، وسيكون مرئيًا في أي عمليات استنساخ مستقبلية تقوم بها لمشروع Overleaf. عندما تقوم أنت أو غيرك بالتحرير في Overleaf، لن يتم إنشاء التزامات تلقائيًا حتى تصبح هناك حاجة إلى ذلك.

#### فرض إنشاء الالتزامات

إذا كنت ترغب في فرض إنشاء التزام عند نقطة معينة في سجل Overleaf، فيمكنك فعل ذلك عن طريق [وضع وسم على إصدار](/latex/ar/mzyd-mn-almwdhwaat/49-using-the-history-feature.md) في سجل Overleaf. سيحصل الإصدار الذي تم وضع وسم عليه على تجزئة commit خاصة به حتى لو لم تقم بـ git pull على الفور. لن يتم إنشاء التزام من وسم إلا إذا لم تكن هناك أي التزامات أخرى أحدث من نقطة سجل Overleaf التي يتم وضع الوسم عليها.

#### تتبع المؤلف

تعني الطبيعة عند الحاجة للالتزامات من تكامل Git في Overleaf أنه إذا حدثت تغييرات متعددة في جانب Overleaf قبل إنشاء التزام، فسيُدرج مؤلف أحدث تغيير باعتباره مؤلف الالتزام.

عند العمل مع المؤلفين المشاركين، من المفيد إنشاء وسم (مما يؤدي إلى إنشاء التزام) بعد أن يُكمل كل متعاون تحديثًا مهمًا - وهذا ينشئ تسلسلًا من الالتزامات المرئية في Git يعكس بأكبر قدر ممكن التغييرات التي تحدث في Overleaf.

### المزامنة مع مستودع بعيد آخر

يتيح لك تكامل Git في Overleaf أن يعمل مشروعك في Overleaf كمستودع بعيد للمستودعات المحلية. ومع ذلك، قد ترغب في مزامنة مشروعك في Overleaf مع مستودع بعيد آخر مستضاف على GitHub أو GitLab أو أي خدمة استضافة Git أخرى.

إذا كنت تزامن مشروعك مع مستودع مستضاف على GitHub (<https://github.com/>), فقد ترغب في استخدام [مزامنة GitHub المباشرة](/latex/ar/qaadh-almarfh/044-github-synchronization.md) من Overleaf.

إذا كنت تزامن مشروعك مع GitLab أو GitHub Enterprise أو مضيف آخر، فيمكنك استخدام تكامل Git في Overleaf لإعداد مستودع محلي وسيط.

باتباع التعليمات أعلاه الخاصة بـ [استنساخ مشروعك](#cloning-your-project-as-a-local-repository) أو [ربط مشروع بمستودع موجود](#creating-an-overleaf-project-from-an-existing-git-repository)، ستحصل على مستودع محلي يمكنه دفع/سحب التغييرات من Overleaf. يمكنك بعد ذلك إضافة مستودع بعيد ثانٍ إلى هذا المستودع يشير إلى المستودع المستضاف لديك. سيحتاج المستودع المحلي لديك إلى مستودعين بعيدين بحيث يشير إلى كل من مضيف Git ومشروع Overleaf.

على الرغم من عدم وجود اتصال مباشر بين مشروع Overleaf ومستودع Git الخاص بك، فإن هذا سيسمح لك بإبقائهما متزامنين.

![Git other remote.png](/files/123704aa3c0dd980c838e3b2c85ed5342df71ac5)

### إضافة مشروع Overleaf كـ Git Submodule

يعمل كل مشروع في Overleaf كمستودع Git مستقل، ولكن إذا أردت تنظيم عدة مشاريع من هذا النوع في مستودع Git واحد، فيمكنك إضافة مستودع كل مشروع كـ Git submodule بالطريقة المعتادة. يمكنك بعد ذلك دفع وسحب كل مستودع فرعي إلى/من Overleaf بشكل فردي ومع ذلك تبقى مجتمعة معًا كـ submodules ضمن مشروع أكبر.

**ملاحظة:** بينما قد تكون مشاريع Overleaf وحدات فرعية ضمن مستودع آخر، فإن مشاريع Overleaf نفسها لا يمكن أن تحتوي على وحدات فرعية أخرى.

### القيود المعروفة

**الفروع**: لا يدعم نظام Git في Overleaf إنشاء الفروع.

**الروابط الرمزية**: لا يتعامل نظام Git في Overleaf مع الروابط الرمزية بشكل جيد. يمكن دفع رابط رمزي إلى مشروع Overleaf، لكنه سيُحوَّل إلى ملف عادي، وسيستبدل الرابط الرمزي المحلي في المرة التالية التي يتم فيها سحب المشروع.

**الوسوم**: لا يدعم نظام Git في Overleaf وضع الوسوم.

**أذونات الملفات**: لا يحافظ نظام Git في Overleaf على أذونات التنفيذ. وللتغلب على ذلك، يمكنك تشغيل `git config core.fileMode false` في النسخة المحلية المستنسخة من المستودع لديك. بعد ذلك يمكنك إعادة ضبط أذونات التنفيذ على أي ملفات متأثرة. بهذه الطريقة لن يتم تعديلها مرة أخرى مع عمليات Git اللاحقة.

**Git LFS:** لا تدعم مشاريع Overleaf Git Large File Storage.

**وحدات Git الفرعية:** يمكن لمشاريع Overleaf أن تعمل كوحدات فرعية لـ Git داخل مستودعات أخرى، لكنها لا يمكن أن تحتوي على وحدات فرعية أخرى لـ Git. وللإشارة إلى الملفات من مشاريع أخرى، يُقترح استخدام [ميزة الإضافة من مشروع آخر](/latex/ar/qaadh-almarfh/009-can-i-share-files-e.g.-.bib-and-some-graphics-across-my-projects.md).

**إعادة تسمية المجلدات**: إذا أعاد مستخدم تسمية مجلد ودفع التغيير إلى Overleaf، فسيحتفظ المشروع بمجلد فارغ بالاسم القديم، بالإضافة إلى المجلد الجديد. (على سبيل المثال، إعادة تسمية images/ إلى img/ ستترك مجلدين في المشروع: img/ الذي يحتوي على ملفات الصور، وimages/ الذي سيكون فارغًا. قد يسبب هذا مشاكل عندما يعيد مستخدم تسمية مجلد، ويُنشئ ملفًا جديدًا بالاسم نفسه للمجلد القديم، في التزام واحد. سيرفض نظام Git في Overleaf هذا الالتزام. في هذه الحالة نوصي بتقسيم الالتزام إلى جزأين، وحذف المجلد المتبقي.

**إعادة تسمية الملفات ونقلها:** تتحول إعادة تسمية ملف في المستودع المحلي لديك إلى حذف وإنشاء على جانب Overleaf. وقد يؤدي ذلك إلى فقدان البيانات الوصفية المرتبطة بملف على جانب Overleaf، مما يتسبب في حذف التغييرات المتتبعة والتعليقات. لا يُنصح بنقل الملفات أو إعادة تسميتها على جانب Git إذا كانت عليها تغييرات متتبعة في Overleaf أو تعليقات.

**تتبّع التغييرات والتعليقات**: للأسف، قد تؤدي عمليات الدفع من Git إلى Overleaf إلى فقدان أو إزاحة التغييرات المتتبعة والتعليقات؛ وبالتالي، لا نوصي بخلط الاستخدام النشط لـ Git مع استخدام تتبع التغييرات و/أو التعليقات.

### استكشاف الأخطاء وإصلاحها

#### أخطاء عدم العثور على المستودع

إذا كنت ترى خطأ عدم العثور على المستودع، فمن المحتمل أن العنوان URL الخطأ هو المستخدم. يمكن العثور على العنوان URL الصحيح بالنقر على خيار Git في القائمة داخل المشروع. بالنسبة إلى Overleaf Cloud، يعد تكامل Git ميزة مدفوعة، لذلك لن يكون متاحًا إلا إذا كان مالك المشروع لديه اشتراك مدفوع في Overleaf أو تم منحه حق الوصول إلى الميزة (مثلًا من خلال المشاركة في اختبار بيتا المبكر).

#### أخطاء فشل المصادقة

يرجى الاطلاع على تعليمات استكشاف الأخطاء وإصلاحها الخاصة بـ [رموز المصادقة لتكامل Git](/latex/ar/qaadh-almarfh/042-git-integration-authentication-tokens.md) أو [المصادقة بكلمة المرور لتكامل Git](/latex/ar/qaadh-almarfh/043-git-integration-password-based-authentication.md) اعتمادًا على طريقة تسجيل الدخول التي تستخدمها.

#### حدود المعدل

لا يحدث تقييد المعدل في Git Bridge عمومًا عندما تُنفَّذ عمليات Git يدويًا. يمكن تهيئة بعض عملاء Git لمحاولة استطلاع المستودعات البعيدة تلقائيًا بحثًا عن التغييرات، مما قد يؤدي في بعض الحالات إلى أخطاء تقييد المعدل. وعادةً ما يؤدي تعطيل أي استطلاع تلقائي أو تقليل تكرار عمليات Git إلى حل هذه المشكلات.

#### فشل دفع المراجع

قد ينتج فشل دفع بعض المراجع إلى المشروع البعيد عن [تجاوز قيود حجم الملفات أو عددها في مشروع](/latex/ar/qaadh-almarfh/119-overleaf-plan-limits.md) أو عن تضمين أنواع ملفات غير مدعومة (مثل الروابط الرمزية أو LFS، على سبيل المثال). يُرجى مراجعة القيود المعروفة المذكورة أعلاه لتحديد أي ملفات مشكلة في الالتزام.

في بعض الحالات، يمكن أن يؤدي زيادة إعداد **postBuffer** إلى معالجة حالات فشل دفع المراجع من المستودع المحلي لديك إلى مشروع Overleaf.

أولًا، يمكنك التحقق من الإعداد الحالي بالأمر:

```
     git config http.postBuffer
```

إذا لم يظهر أي إخراج، فهذا يعني أنه يتم استخدام القيمة الافتراضية البالغة 1 ميجابايت.

بعد ذلك، جرّب الأمر

```
     git config --global http.postBuffer 10485760
```

والذي سيضبط القيمة على 10 ميجابايت بدلًا من ذلك.

الآن يمكنك محاولة دفع الالتزام (إلى المشروع الأصلي أو الجديد). إذا لم ينجح ذلك، يمكنك العودة إلى إعدادك السابق، أو إزالة الإعداد بالأمر:

```
     git config --global --unset http.postBuffer
```

#### انتهاء المهلة

قد تؤدي التزامات Git التي تتضمن عددًا كبيرًا من التغييرات إلى انتهاء المهلة. إذا واجهت انتهاء مهلة، فيُرجى محاولة تقسيم الالتزام إلى تغييرات أصغر. إذا استمرت المشكلة، ففكّر في ضبط **postBuffer** إلى 10 ميجابايت كما هو موضح أعلاه.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/ar/qaadh-almarfh/040-git-integration.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
