إعداد ملف gitignore عام (core.excludesFile)
كيفية ضبط core.excludesFile لتجاهل ملفات بيئتك الشخصية، مثل .DS_Store في macOS وملفات المحرر، في جميع المستودعات، والمسار الافتراضي.
ملفات مثل .DS_Store وThumbs.db و.idea/workspace.xml و*.swp لا تنشأ بسبب المشروع، بل بسبب حاسوبك ومحررك. ملف gitignore العام هو المكان الذي تكتب فيه هذه القواعد مرة واحدة بدلًا من تكرارها في كل مستودع.
المسار الافتراضي
حتى من دون أي إعداد يقرأ git الملف التالي بوصفه قائمة التجاهل العامة.
$XDG_CONFIG_HOME/git/ignore- إذا كان
XDG_CONFIG_HOMEفارغًا أو غير مضبوط:$HOME/.config/git/ignore
أي أن إنشاء الملف ~/.config/git/ignore يكفي في معظم بيئات macOS وLinux.
mkdir -p ~/.config/git
printf '.DS_Store\n*.swp\n.idea/workspace.xml\n' >> ~/.config/git/ignore
لاستخدام ملف آخر: core.excludesFile
لاستخدام ملف في المسار الذي تريده اضبط core.excludesFile. عند ضبط هذه القيمة يقرأ git ذلك الملف بدلًا من المسار الافتراضي.
# macOS / Linux
git config --global core.excludesFile ~/.gitignore_global
# Windows (PowerShell)
git config --global core.excludesFile "$env:USERPROFILE\.gitignore_global"
تحقّق من الإعداد بالأمر التالي.
git config --global --get core.excludesFile
إن لم يظهر أي ناتج فالقيمة غير مضبوطة ويُستخدم المسار الافتراضي أعلاه.
ما الذي يوضع في الملف العام
يناسب الملفَ العام الملفاتُ الشخصية التي تنشأ بالطريقة نفسها أيًّا كان المشروع.
| النوع | أمثلة | القالب المقترح |
|---|---|---|
| نظام التشغيل | .DS_Store، ._*، Thumbs.db، desktop.ini، *~ | macOS، Windows، Linux |
| الحالة الشخصية للمحرر/بيئة التطوير | *.swp، .idea/workspace.xml، الملفات الشخصية في .vscode/* | Vim، JetBrains، VisualStudioCode |
| أدوات شخصية | .envrc (direnv)، مجلد ملاحظات شخصية | اكتبها بنفسك |
إذا اخترت في المولّد قوالب مثل macOS وJetBrains فقط ونسخت النتيجة، فيمكن استخدامها مباشرة محتوى للملف العام.
وفي المقابل، مخرجات البناء ومجلدات الاعتماديات والملفات السرية توضع في ملف .gitignore الخاص بالمشروع لا في الملف العام، لأن هذه القواعد يجب أن تنطبق على كل من يستنسخ المستودع.
حدود الاعتماد على الملف العام
ينطبق ملف gitignore العام على حاسوبك فقط. إذا لم يضبطه زميلك فقد يُضاف ملف .DS_Store الخاص به في commit. لذلك يقترح مستودع قوالب GitHub نفسه الطريقتين معًا: وضع قوالب Global في الملف العام أو دمجها في قوالب المشروع.
عمليًّا، يصلح المعيار التالي.
- في المشاريع الشخصية، أو إذا كان الفريق قادرًا على توجيه الجميع لضبط الملف العام، ضعها في الملف العام.
- إذا لم يكن بالإمكان التحكم في المساهمين، كما في المشاريع مفتوحة المصدر، فأضف على الأقل
.DS_StoreوThumbs.dbإلى ملف .gitignore الخاص بالمشروع أيضًا.
الأولوية
للملف العام أدنى أولوية بين مصادر القواعد الأربعة. حتى لو تجاهل الملف العام *.log، فإن !keep.log في ملف .gitignore الخاص بالمشروع هو الذي يفوز. وإذا التبس عليك أي قاعدة طُبّقت فشغّل git check-ignore -v <المسار>. إذا ظهر مسار الملف العام في بداية الناتج فالقاعدة العامة هي التي حسمت الأمر.