للحصول على معلومات إضافية في موجه ل GIT بواسطة ZSH

StackOverflow https://stackoverflow.com/questions/1127447

  •  13-09-2019
  •  | 
  •  

سؤال

يبدو أن torvalds لديها موجه التالي.

[torvalds@g5 git]$ 

الكلمة الأولى هي اسم المستخدم. g5 يبدو أن فرع في جيت ريبو، في حين git يدل على أنه فرع في جيت.

موجه الحالي

PROMPT="$"

كيف يمكنك الحصول على موجه مماثل كورفالدز؟

هل كانت مفيدة؟

المحلول

في الواقع، أنا أظن ذلك g5 يشير إلى اسم المضيف للآلة وهو يعمل حاليا على git هو دليل العمل الحالي. التنسيق [user@hostname dir]$ هو معيار جميل (أي موجه شل على نطاق واسع).

نصائح أخرى

تكامل GIT مع إكمال باش للبرمجة يوفر وظيفة اسمه __git_ps1.

إذا قمت بتغيير الخاص بك PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ ' (في الخاص بك .bashrc أو بعض الملفات الأخرى المصدرة بشكل تفاعلي)، ولا تفعل أي تخصيصات أخرى، فإن موجه الخاص بك سيبدو هكذا:

user @ host ~] $ cd / usr / src / linux [user @ host linux ((v2.6.30))] $

إذا كنت تستخدم زيش (بدلا من باش أكثر شعبية)، نلقي نظرة على معلومات VCS في المطالبات منشور بلوق من Xana Yammering حول استخدام vcs_info النظام الفرعي الذي طورته فرانك تيربيك ل ZSH، مع Backend for git.

مثل الأفمائية قال، سوف ترغب في ذلك جيت باش سيناريو, ، تعليمات التثبيت بالقرب من الجزء العلوي من الملف. قد ترغب أيضا في التحقق من دليل دليل جيثب لهذا. شيء واحد يستحق الذكر هو أن الفرع سوف يظهر فقط إذا كنت في دليل git. على سبيل المثال، هذا هو ما يشبه موجه العادي: blaenk@macbook:~ $ والمظهر يبدو أن هذا عندما أكون في دليل GIT: blaenk@macbook:~/code/iphone/DIFM (master*)$

إذا نظرت عن كثب، فإن الجزء حيث يظهر الفرع، ماجستير، لديه علامة نجمية بعد ذلك. هذا يدل على أن هناك تغييرات غير صحيحة؛ سيظهر A + إذا تم تنظيم التغييرات. هذا يمكن أن يكون مفيدا جدا. للقيام بذلك، لديك أساسا لتعيين GIT_PS1_SHOWSTASHSTATE إلى حالة غير فارغة. لذلك على سبيل المثال في الخاص بك ~/.bashrc أو ~/.bash_profile, ، ضع ما يلي:

export GIT_PS1_SHOWDIRTYSTATE=true

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

git checkout -- the/file.txt

بالمناسبة، أن سيناريو الباش الكامل التلقائي هو أيضا رائع حقا. يمكنك أخيرا أن تفعل أشياء مثل "git chec" ثم اضغط على علامة التبويب، وسوف تتمكن من التلقائي عند الخروج على سبيل المثال، ويمكنك أيضا تلقائيا أسماء فرع كاملة أيضا.

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

جاء عبر هذا السؤال أثناء البحث. فقط يعتقد أن تبادل حل أحدث لهذا.

موجه السائل يسمح العديد من التخصيص إلى مطالبة ZSH، بما في ذلك إظهار فرع GIT وملليات مختلفة لحالة مختلفة من مستودع GIT.

أحصل على ما يلي أخيرا

 function get_git_branch { 
   git branch | awk '/^\*/ { print $2 }
 }
 function get_git_dirty { 
   git diff --quiet || echo '*'
 }
 function get_git_prompt { 
   git branch &> /dev/null || return 1 
   echo "($(get_git_branch)$(get_git_dirty)) "
 }
 PROMPT="$(get_git_prompt)\$ "

مصدر

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top