আমি বাশ প্রম্পটে রঙ সহ গিট শাখাটি কীভাবে দেখাব?


107

গিটি সংগ্রহস্থলে কাজ করার সময় আমি জিনোম টার্মিনালে (উবুন্টু 15.10) শাখার নামটি দেখানোর জন্য এই গাইডটি ব্যবহার করছি । উপরের ভিত্তিতে আমার এখন আমার ~ / .bashrc ফাইলে নীচে রয়েছে:

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes 

...

# Add git branch if its present to PS1
parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt

ফলস্বরূপ আমি এখন:

এখানে চিত্র বর্ণনা লিখুন

সুতরাং এটি কাজ করে । তবে আমার ব্যবহারকারীর @ হোস্টের রঙ কেন মুছে ফেলা হয়েছে? এবং আমিও আশা করব যে শাখার নামটি রঙিন হওয়া উচিত। এটির মতো দেখার আগে:

এখানে চিত্র বর্ণনা লিখুন

আপডেট: আমি এখন পরিবর্তে এই গাইডটি চেষ্টা করেছি:

https://coderwall.com/p/fasnya/add-git-branch-name-to-bash-prompt

এটি .bashrc এ যুক্ত করুন:

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "

এবং এটি কাজ করে:

এখানে চিত্র বর্ণনা লিখুন

.Bashrc এ লক্ষ্য করুন আমার এটিও আছে (ডিফল্ট):

# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes

সেই স্নিপেট কেন সঠিক ফলাফল দেয় এবং অন্য সংস্করণটি দেয় না তার কারণ আমি এখনও খুঁজে পাইনি। এটির কোনও ইনপুট?

আমার .bashrc এর সংস্করণটি এখানে পুরানো স্নিপেট সক্ষম করেছে যা কাজ করে না:

http://pastebin.com/M8kjEiH3


force_color_promptআগে কি অসমাপ্ত ছিল?
মুড়ু

হ্যাঁ আমি উভয়ই নিরক্ষিত এবং একই ফলাফল মন্তব্য করে চেষ্টা করেছি। উপরে পোস্ট করা গাইড বলেছে এটির মন্তব্য করা উচিত।
u123

আপনি কি আপনার সম্পূর্ণ পোস্ট করতে পারেন .bashrc? আইআইআরসি ডিফল্ট .bashrcরঙ প্রম্পটগুলি সক্ষম করে না, তাই আপনাকে রঙগুলি দেখানোর জন্য এটি পরিবর্তন করতে হবে। এটি আপনি কী পরিবর্তন করেছেন তার উপর নির্ভর করে।
মুরু

1
Line৪ নং লাইনে একবার দেখুন, যা আপনাকে জানাতে force_color_promptপারে যে অস্বস্তিকর কেন সহায়তা করে না।
মারু

2
@ u123 ডিফল্ট সম্পর্কে .bashrcখুব বেশি চিন্তা করবেন না । আপনি যদি বিশৃঙ্খলা সৃষ্টি করেন তবে আপনি সর্বদা এ থেকে আসলটি পেতে পারেন /etc/skel/.bashrc
মারু

উত্তর:


120

এই স্নিপেট:

# Add git branch if its present to PS1

parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi

ডিফল্ট প্রম্পট সংজ্ঞাটি প্রতিস্থাপন করতে বোঝানো হয় :

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

যার সাথে শেষ হয়:

unset color_prompt force_color_prompt

.bashrcআপনি পোস্ট দেখায় আপনি এটা যোগ করছি পরে ডিফল্ট প্রম্পট সংজ্ঞা এবং unset color_prompt force_color_prompt(লাইন # 64)।

হয় স্নিপেটের সাথে ডিফল্ট প্রম্পট সংজ্ঞাটি প্রতিস্থাপন করুন বা আপনার ~/.bashrcযেমন হয় তেমন ছেড়ে দিন এবং unset color_prompt force_color_promptলাইন # 64- তে ডিফল্ট প্রম্পট সংজ্ঞাটি মন্তব্য করুন :


সুতরাং আপনার .brcrc এর অংশটি দেখতে পারে

parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\] $(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
# THE SIX LINES BELOW are the default prompt and the unset (which were in the original .bashrc)
#if [ "$color_prompt" = yes ]; then
#    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
#else
#    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
#fi
#unset color_prompt force_color_prompt

screensot


উপরোক্ত যাচাই করা হয়েছে এবং আপনি সঠিক। আমি স্নিপেটের নতুন সংস্করণটির সাথে লেগে থাকব কারণ এটি বাশার্ক ফাইলের ডিফল্ট অংশগুলি পরিবর্তন না করেই কাজ করে।
u123

1
এটি শাখার নামে রঙ যুক্ত করতে ব্যর্থ।
অবিনাশ রাজ

@AvinashRaj ডিফল্ট একটি কপি সঙ্গে এটি পরীক্ষা করুন ~/.bashrcমধ্যে /etc/skel/.bashrc, আপনি কিছু আপনার হস্তক্ষেপ থাকতে পারে ~/.bashrc
কোস

আন-মন্তব্যে বল _color_prompt = হ্যাঁ (লাইন # 48) যদি রঙগুলি দৃশ্যমান না হয়।
আদিল আব্বাসি

1
আপনার শাখার স্থিতি অনুসারে রঙ করার জন্য, আপনি গিটের দ্বারা প্রদত্ত নেটিভ গিট-প্রম্পট স্ক্রিপ্টটি ব্যবহার করতে পারেন ।
নিকেত পাঠক

60

উবুন্টু: আপনার টার্মিনালে আপনার শাখার নামটি দেখান

আপনার। / .Bashrc ফাইলে এই লাইনগুলি যুক্ত করুন

# Show git branch name
force_color_prompt=yes
color_prompt=yes
parse_git_branch() {
 git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
if [ "$color_prompt" = yes ]; then
 PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[01;31m\]$(parse_git_branch)\[\033[00m\]\$ '
else
 PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$(parse_git_branch)\$ '
fi
unset color_prompt force_color_prompt

এই আদেশের সাহায্যে .bashrc ফাইলটি পুনরায় লোড করুন:

$ source ~/.bashrc

5
এটি আমার জন্য 18.04 এ কাজ করেছে!
cbloss793

1
ধন্যবাদ। ব্যবহার: উবুন্টু 18.04.1 এলটিএস
মিশ্র

এটি প্রাথমিকের 0.4 লোকায় আমার জন্যও কাজ করেছিল। কমান্ডটি দিয়ে আমার ~ / .bashrcটিকে খোলার মত সহজ sudo nano ~/.bashrc, ফাইলটির শেষে আপনার কোডটি অনুলিপি করুন, এটি সংরক্ষণ করুন, প্রস্থান করুন এবং উপরে বর্ণিত কোডটি দিয়ে ~ / .bashrc পুনরায় লোড করুন। অনেক অনেক ধন্যবাদ;)
হুয়ান গমেজ ক্যারিলো

রেডহাট 6.8 এ কাজ করে!
বিজি

1
এই কাজ এবং রং রাখা! (উবুন্টু 18.04)
warkentien2

10

আপাতত, আমি এই https://gist.github.com/eliotsykes/47516b877f5a4f7cd52f অনুসরণ করেছি এবং এটিকে এ পর্যন্ত পছন্দ করে চলেছি, যদিও আমি এটিকে আরও কাস্টমাইজ করার পরিকল্পনা করছি।

টার্মিনালে

mkdir ~/.bash

ডিরেক্টরিতে git-prompt.shগিট অবদান থেকে কাঁচা ফাইলটি অনুলিপি করুন ~/.bash: https://github.com/git/git/blob/master/contrib/completion/git-prompt.sh

ভিতরে ~/.bashrcবা ~/.bash_profile(আপনি সাধারণত কোনও ব্যাশ কাস্টমাইজেশন / সেটআপ ফাইল রাখবেন এমন ফাইলটি চয়ন করুন), লাইনগুলি যুক্ত করুন:

source ~/.bash/git-prompt.sh # Show git branch name at command prompt
export GIT_PS1_SHOWCOLORHINTS=true # Option for git-prompt.sh to show branch name in color

# Terminal Prompt:
# Include git branch, use PROMPT_COMMAND (not PS1) to get color output (see git-prompt.sh for more)
export PROMPT_COMMAND='__git_ps1 "\w" "\n\\\$ "' # Git branch (relies on git-prompt.sh)

যতক্ষণ আপনি গিট রেপোর অভ্যন্তরে রয়েছেন ততক্ষণ আপনার বাশ প্রম্পটে এখনকার গিট ব্রাঞ্চটি রঙিন নির্দেশক হিসাবে দেখানো উচিত যদি এটি অনির্ধারিত পরিবর্তনগুলি পেয়ে থাকে।


সহজ এবং কাজ!
দানি

এটি গ্রহণযোগ্য উত্তর হওয়া উচিত, কারণ এটি পরিষ্কার, সংক্ষিপ্ত এবং কাজটি করে এবং এটি অন্যান্য প্ল্যাটফর্মগুলিতেও কাজ করে।
মাইগুয়েলমোরিন

2

হোম ফোল্ডারে যান

লুকানো ফাইলগুলি দেখতে Ctrl+ ক্লিক করুন h

খোলা। bashrcফাইল এবং শেষে পেস্ট করুন:

parse_git_branch() {
     git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(parse_git_branch)\[\033[00m\] $ "

আপনি যদি আপনার টার্মিনালটি খোলেন, বন্ধ করে আবার খোলেন। উপভোগ করুন !!


হ্যালো, আমি এটি চেষ্টা করেছি এবং এটি কেবল যেখানে আমি সুপারইজারটি স্যুইচ করি সেখানে কাজ করে, আপনি কীভাবে আমাকে সর্বদা সক্ষম করতে পারেন তা বলতে পারেন?
ডেনিস স্টেথানভ

0

আমার সমস্যাটি হ'ল আমি বিকল্পটি সক্ষম করেছিলাম না

লগ-ইন শেল হিসাবে চালায় কমান্ড মধ্যে

টার্মিনালসম্পাদনাপ্রোফাইল পছন্দসমূহকমান্ড


0

প্রতিস্থাপন করা

parse_git_branch

সঙ্গে

parse_git_branch 2>/dev/null

আপনার PS1 সংজ্ঞা এবং পরে সুখে বাস।


0

নীচে লাইন যুক্ত করুন ~/.bashrc:

export GIT_PS1_SHOWDIRTYSTATE=true
export GIT_PS1_SHOWUNTRACKEDFILES=true

export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\$ '
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.