٢، ٧، الكُنيات في جت

قبل أن نتقدم إلى الباب التالي، نود أن نعرّفك ميزة في جت ستجعل استعمالك أسهل وأريح وأكثر ألفة: الكُنيات. للوضوح، لن نستعملها في الكتاب إلا في هذا الفصل. لكن إذا نويت استعمال جت باستمرار، فيجب أن تعرفها.

لا يُخمّن جت الأمر الذي تريده إذا كتبت جزءًا منه. فإذا لم تشأ كتابة كل أم‍ر بكامله، فيمكنك تعيين كُنية لكل أم‍ر تريده بسهولة بأم‍ر التهيئة git config. هذه أمثلة ربما تحب إعدادها:

$ git config --global alias.co checkout
$ git config --global alias.br branch
$ git config --global alias.ci commit
$ git config --global alias.st status

هذا يعني أن يمكنك كتابة git ci مثلا بدلا من أن تكتب git commit. وبالاستمرار مع جت، ستجد أوامر أخرى تستعملها كثيرا؛ لا تتردد في إنشاء كُنيات لها.

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

$ git config --global alias.unstage 'reset HEAD --'

يجعل هذا الأمرين التاليين متكافئين:

$ git unstage fileA
$ git reset HEAD -- fileA

هذا أسهل وأوضح. وكذلك من الشائع إضافة أمر last «الأخير»، مثل هذا:

$ git config --global alias.last 'log -1 HEAD'

فيمكنك عندئذٍ رؤية إيداعك الأخير بسهولة:

$ git last
commit 66938dae3329c7aebe598c2246a8e6af90d04646
Author: Josh Goebel <dreamer3@example.com>
Date:   Tue Aug 26 19:48:51 2008 +0800

    Test for current head

    Signed-off-by: Scott Chacon <schacon@example.com>

وكما يمكنك أن تخمن، إنما يترجم جت الأمر الجديد إلى ما جعلته كُنيةً له. ولكنك أحيانا قد تريد تنفيذ أمر خارجي، بدلا من أم‍ر فرعي في جت. في هذه الحالة تبدأ الأمر بعلامة تعجب: !. يفيد هذا عندما تكتب أدواتك الخاصة التي تعمل مع مستودع جت. نوضّح ذلك بعمل الكُنية git visual لتشغيل gitk:

$ git config --global alias.visual '!gitk'