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

فكرة العمل: ربط كل مجلد بملف إعداد مستقل
تعتمد الفكرة على تقسيم المستودعات إلى مجلدات منفصلة، ثم ربط كل مجلد بملف إعداد خاص به عبر ملف .gitconfig الرئيسي. وعندما يكتشف Git أن المستودع موجود داخل مسار معيّن، يقوم تلقائياً بتحميل الملف المناسب باستخدام includeIf.
على سبيل المثال، يمكنك تخصيص مجلد للعمل وآخر للمشاريع الشخصية كما يلي:
~/workلمشاريع العمل~/personalللمشاريع الشخصية أو مفتوحة المصدر
الخطوة الأولى: إنشاء مجلدات منفصلة للمستودعات
ابدأ بتنظيم مشاريعك داخل مجلدات واضحة حسب نوع الحساب الذي تريد استخدامه. هذا التنظيم ليس مجرد ترتيب شكلي، بل هو الأساس الذي تعتمد عليه آلية التبديل التلقائي بين الإعدادات.
مثال عملي على هيكلة المجلدات
~/workلجميع المشاريع المرتبطة بالعمل~/personalلجميع المشاريع الجانبية أو الشخصية
كل مستودع جديد تنشئه داخل أحد هذين المسارين سيرث إعدادات Git المخصصة لذلك المسار.
الخطوة الثانية: إنشاء الإعداد العام في ملف .gitconfig
بعد تجهيز المجلدات، انتقل إلى المجلد الرئيسي للمستخدم وأنشئ ملف .gitconfig إذا لم يكن موجوداً. داخل هذا الملف، أضف قواعد includeIf لتحديد ملف الإعداد المناسب لكل مسار.
[includeIf "gitdir:~/personal/"]
path = ~/.gitconfig-personal
[includeIf "gitdir:~/work/"]
path = ~/.gitconfig-work
عند وجود مستودع داخل المسار ~/personal/، سيستخدم Git الملف ~/.gitconfig-personal. وعند وجوده داخل ~/work/، سيتم تحميل الملف ~/.gitconfig-work. أما إذا لم يطابق المستودع أي مسار محدد، فسيعود Git إلى الإعداد الافتراضي.
الخطوة الثالثة: إنشاء ملفات إعداد مستقلة لكل حساب
الآن تحتاج إلى إنشاء ملفات الإعداد الفردية التي أشرنا إليها في الملف الرئيسي. يمكن لكل ملف أن يحتوي على بيانات المستخدم، البريد الإلكتروني، وأي تخصيصات أخرى ترغب بها.
إعداد حساب العمل
[user]
name = work_user
email = work_email
إعداد الحساب الشخصي
[user]
name = personal_user
email = personal_email
يمكنك أيضاً توسيع هذه الملفات لاحقاً لتضمين إعدادات إضافية مثل signingkey أو إعدادات hooks أو تفضيلات محرر النصوص.
التحقق من نجاح إعداد أكثر من حساب Git
بعد إتمام الخطوات السابقة، من المفترض أن يصبح لديك ثلاثة ملفات أساسية داخل المجلد الرئيسي للمستخدم:
~/.gitconfig~/.gitconfig-work~/.gitconfig-personal

بعد ذلك، يمكنك إنشاء مستودع تجريبي داخل كل مسار للتأكد من أن Git يقرأ الإعداد الصحيح.
اختبار إعداد العمل
$ cd ~/work
$ mkdir work-test-repo
$ cd work-test-repo
$ git init
Initialized empty Git repository in /Users/dbarochiya/work/work-test-repo/.git/
$ git config -l
credential.helper=osxkeychain
includeif.gitdir:~/personal/.path=~/.gitconfig-personal
includeif.gitdir:~/work/.path=~/.gitconfig-work
user.name=working_me
user.email=work@work.com
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
اختبار الإعداد الشخصي
$ cd ~/personal
$ mkdir personal-test-repo
$ cd personal-test-repo
$ git init
Initialized empty Git repository in /Users/dbarochiya/personal/.git/
$ git config -l
credential.helper=osxkeychain
includeif.gitdir:~/personal/.path=~/.gitconfig-personal
user.name=me_personal
user.email=personal@personal.com
includeif.gitdir:~/work/.path=~/.gitconfig-work
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true
كما تلاحظ، يختلف كل من user.name وuser.email بين المستودعين، وهذا يؤكد أن آلية التبديل تعمل بشكل صحيح اعتماداً على المسار.
أفضل الممارسات عند إدارة حسابات Git متعددة
- استخدم أسماء مجلدات واضحة مثل
workوpersonalلتجنب الالتباس. - احرص على إنشاء أي مستودع جديد داخل المجلد الصحيح حتى يحصل على الإعداد المناسب تلقائياً.
- راجع ناتج الأمر
git config -lعند الشك في الحساب المستخدم. - تجنب وضع معلومات جميع الحسابات داخل ملف واحد، لأن ذلك يرفع احتمال الخطأ أثناء العمل اليومي.
- إذا كنت تستخدم مفاتيح
SSHمختلفة، فمن الأفضل تنسيقها أيضاً مع هذا الفصل للحصول على بيئة أكثر احترافية.
متى تكون هذه الطريقة مفيدة فعلاً؟
هذا الأسلوب مناسب جداً في الحالات التالية:
- عند العمل بحساب شركة وحساب شخصي على الجهاز نفسه.
- عند المساهمة في مشاريع مفتوحة المصدر باستخدام بريد مختلف.
- عند الحاجة إلى فصل الإعدادات الأمنية أو التوقيع الرقمي بين أكثر من جهة.
- عند إدارة عدد كبير من المستودعات وتريد أتمتة اختيار الهوية بدون تدخل يدوي.
الخلاصة التقنية
استخدام أكثر من ملف Git config على جهاز واحد ليس مجرد حيلة تنظيمية، بل هو حل عملي يقلل الأخطاء ويجعل بيئة التطوير أكثر وضوحاً واحترافية. بالاعتماد على includeIf وربط كل مسار بملف إعداد مستقل، تستطيع إدارة هويات متعددة بكفاءة عالية، خصوصاً إذا كنت تتنقل باستمرار بين مشاريع العمل والمشاريع الشخصية.