Git හි ප්‍රතිදානය වර්ණවත් කරන්නේ කෙසේද?


269

Git (හෝ කිසියම් විධානයක්) සඳහා ප්‍රතිදානය වර්ණ ගැන්වීමට ක්‍රමයක් තිබේද?

සලකා බලන්න:

baller@Laptop:~/rails/spunky-monkey$ git status
# On branch new-message-types
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   app/models/message_type.rb
#
no changes added to commit (use "git add" and/or "git commit -a")
baller@Laptop:~/rails/spunky-monkey$ git add app/models

හා

baller@Laptop:~/rails/spunky-monkey$ git status
# On branch new-message-types
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       modified:   app/models/message_type.rb
#

ප්‍රතිදානය එක හා සමානයි, නමුත් තොරතුරු මුළුමනින්ම වෙනස් ය: ගොනුව අස්ථායි මට්ටමේ සිට කැපවීම සඳහා වේදිකාවට ගොස් ඇත.

ප්‍රතිදානය වර්ණ ගැන්වීමට ක්‍රමයක් තිබේද? උදාහරණයක් ලෙස, වේදිකාගත නොකරන ලද ලිපිගොනු රතු, වේදිකාගත කර ඇති කොළ පාටද?

නැත්නම් Changes not staged for commit:රතු සහ # Changes to be committed:කොළ පාටටද?

උබුන්ටු වල වැඩ කරනවා.

සංස්කරණය කරන්න: ගූග්ලිං විසින් මෙම පිළිතුර සොයා ගන්නා ලදී git config --global --add color.ui true.

කෙසේ වෙතත්, විධාන ප්‍රතිදානයකට වර්ණය එක් කිරීම සඳහා තවත් පොදු විසඳුමක් තිබේද?


1
සියලුම විධාන ප්‍රතිදානයන් වර්ණවත් කරන යමක් ඔබට අවශ්‍යද? කුමන කොටස් වර්ණ ගැන්විය යුතුදැයි එය දැන ගන්නේ කෙසේද?
මයිකල් ම්රෝසෙක්

රීජෙක්ස් භාවිතයෙන් එය වින්‍යාස කිරීමට ක්‍රමයක් තිබේදැයි මම අනුමාන කරමි: සෑම වර්ණයකටම ආරම්භක රීජෙක්ස් තිබිය හැකිය. සියලු වර්ණ අක්‍රිය කිරීම සඳහා පෙරනිමි වර්ණ රීජෙක්ස් තිබිය හැකිය. තවද, "foo" පා text ය දිස්වන්නේ නම්, එය එක්තරා වර්ණයකින් පෙන්වන්න ...
B Seven

Answers:


279

ඔබට පහත දැක්වෙන අන්තර්ගතය සමඟ [color]ඔබේ කොටස සෑදිය හැකිය~/.gitconfig

[color]
  diff = auto
  status = auto
  branch = auto
  interactive = auto
  ui = true
  pager = true

ඔබට වර්ණ ගැන්වීමට අවශ්‍ය දේ කවර ආකාරයකින් පාලනය කළ හැකිද, උදා

[color "status"]
  added = green
  changed = red bold
  untracked = magenta bold

[color "branch"]
  remote = yellow

මම හිතනවා මේක ඔයා පටන් ගනීවි කියලා. ඇත්ත වශයෙන්ම, ඔබට වර්ණයට සහාය වන පර්යන්තයක් අවශ්ය වේ.


15
මම හිතන්නේ git config --global color.ui auto (vEvgeny ගේ පිළිතුර) ඔබේ මුදුනේ තැබීම වටී ... මම හිතන්නේ එය බොහෝ දෙනා සොයන දේ විය හැකිය. මම මේ දෙකම ඉහළට ඔසවා තැබුවෙමි ... මම කියන්නේ, අන්තර්ජාලය මෙහි පැමිණෙන විට, මම හිතන්නේ බොහෝ දෙනෙකුට අවශ්‍ය වන්නේ එම සරල එක ලයිනර් ය. ඔවුන් එය ලබා ගන්නේ නම් වඩා හොඳය, ඔබේ අමතර යහපත්කම.
msouth

මෙය මට හොඳින් ක්‍රියාත්මක විය - [color "status"]මා එකතු කළ කොටසේ branch = yellow.
වේන් වර්නර්

3
ඔබට ව්‍යාපෘතියේ .git / config ගොනුවට [වර්ණ] කොටස එකතු කළ හැකිය
andrej

ඔබට git විධානයක
NeilG

235

ඔබට බොහෝ විට භාවිතා කිරීමට අවශ්‍යය

git config --global color.ui auto

මෙම autoකොටස GIT පමණක් පර්යන්ත වර්ණ උත්සාහ භාවිතය ඇත එය සහාය ලබාදෙන බව පවසයි, ඔබ, උදාහරණයක් වශයෙන්, ගොනු කිරීමට GIT විධාන ප්රතිදානය හරවා නම්, ඔබ ANSI අනුක්රමය ලබා ගැනීමට නොහැකි වනු ඇත. එය සැකසීම trueසමාන වන අතර autoGit 1.8.4 සිට මෙය පෙරනිමිය වේ.

මෙම color.uiසියලු විවිධ ඇතුළත් බව මෙටා වින්යාස color.*GIT විධාන ලබා ගත මානකරණ.

මෙය ගැඹුරින් විස්තර කෙරේ git help config.


Color.ui true( autoපෙන්වා දෙන) එදිරිව වෙනස ඔබට පැහැදිලි කළ හැකිද always? මම ලියකියවිලි කියවූ නමුත් මට තවමත් වෙනසක් ලැබී නැත.
චාර්වි

1
harchharvey color.ui = auto+ git diff | less- වර්ණ නැත, color.ui = always+ git diff | less- වර්ණ ප්‍රතිදානය. LESS=-Rගම්‍ය වේ.
x-yuri

20
git config --global color.ui auto
git config --global color.branch auto
git config --global color.status auto

FYI, මෙය වැඩ කළේ git අනුවාදය 1.5.2.1 සඳහා පමණි, අනෙක් අය පිළිතුරු දුන්නේ නැත.
අභිනික්ස්

18

පිළිගත් පිළිතුර වඩාත් පොදු විසඳුම ලබා දෙයි. කිසියම් හේතුවක් නිසා එම විසඳුම මඟින් වින්‍යාසය ස්ථිරවම වෙනස් නොකිරීමට ඔබට අවශ්‍ය නම්, ඔබට තනි git විධානයක් සඳහා වින්‍යාසය අභිබවා යා හැකිය:

git -c color.ui=always <usual git command and options>

උදාහරණයක් වශයෙන්:

git -c color.ui=always status
git -c color.ui=always diff

පරීක්ෂා: GIT 2.4.6 සහය නැති GIT 1.7.1 සහය.


3
මා මෙන් වෙනත් ඕනෑම කෙනෙකුට වර්ණ ලබා ගැනීමට උත්සාහ කරන විට less, ඔබට lessවර්ණ ගැලවීමේ අක්ෂර පර්යන්තය හරහා ගමන් කළ හැකිය less -R.
xdhmoore

මෙම අංගය එකතු කළේ කවදාද?
Ondra Žižka

11
git config --global color.ui always
git config --global color.branch always
git config --global color.diff always
git config --global color.interactive always
git config --global color.status always
git config --global color.grep always
git config --global color.pager true
git config --global color.decorate always
git config --global color.showbranch always

3

වර්ණ ගැන්වූ git diffපයිප්පයක් සඳහා less, මෙය ක්‍රියා කරයි:

git -c color.diff=always diff [...] | less -R

1

අත්තනෝමතික විධාන ප්‍රතිදාන වර්ණකය සමඟ ඔබට මෙය කළ හැකිය . එය බොහෝ දුරට ක්‍රියාත්මක වේ, නමුත් ආදානය පෙන්වීමට අපේක්ෂා කරන දෝෂයක් වටා වැඩ කරන්නේ කෙසේදැයි මම හදුනාගෙන නැති අතර ඔබට අවශ්‍ය ආදානය ටයිප් කර සෑම අවස්ථාවකම ඉදිරියට යාමට Enter යතුර ඔබන්න.

උදාහරණයක් ~/.acoc.confසඳහා git:

# git
[git/ae]
/.*(error:.*)/                                    red+bold
/.*(warning:.*)/                                  yellow
/.*(hint:.*)/                                     magenta
/.*(up-to-date).*/                                green+bold
/.*(nothing to commit).*/                         green
/^(\+.*)/                                         green
/^(-.*)/                                          red

..which සමග අවසරයෙන් වැඩ alias git="acoc git"ගැන .bash_profile.


ඔබට ඔබේ වින්‍යාසය බෙදා ගත හැකිද acoc?
ග්‍රෙග් ඩුබිකි

Nvm, ලිවීම පහසු විය. :) පිළිතුරට එකතු කරන ලදි.
ග්‍රෙග් ඩුබිකි

1

වර්ණ භාෂා සින්ටැක්ස්-උද්දීපනය (git) වෙනස නිමැවුම් සඳහා https://github.com/dandavison/delta දෙස බලන්න , සහ වෙනසෙහි එකතු කළ / ඉවත් කළ රේඛා වර්ණ ගැන්වීම.


0

මෙම තනතුරට වයස අවුරුදු හතරක් බව මම දනිමි, නමුත් කිසිවෙකු මගේ කඳවුරෙන් ප්‍රතිචාර නොදැක්වීය. ඔබට වර්ණ වෙන්කර හඳුනාගත හැකි නම්, මගේ සටහන නොසලකා හරින්න.

නිදසුනක් ලෙස "git status" මඟින් පසුබිම මත සුදු පැහැය / සුදු පසුබිම මත කළු පැහැය (පැහැදිලිව පෙනෙන), මකාදැමීම සඳහා තද අළු (කළු පසුබිමට එරෙහිව අවිනිශ්චිත නමුත් සුදු පසුබිමකට එරෙහිව පැහැදිලිව පෙනෙන) සහ එකතු කිරීම සඳහා මධ්‍යම අළු (කළු මත බාර්ලි පැහැදිලිව පෙනේ) පසුබිම, සුදු පසුබිම මත අවිනිශ්චිත). මගේ ටර්මිනල් කවුළුවේ පසුබිම සුදු / කළු සිට / ටොගල් කිරීමට මම පුරුදුව සිටියෙමි. සරල විසඳුමක් තවත්:

 git status | more

මෙය සම්මත සුදු හෝ කළු පසුබිම් පර්යන්ත කවුළුවක ඇති සියලුම පෙළ පැහැදිලි කරයි.


1
පෙරනිමියෙන් සෑම දෙයක්ම වර්ණයට සැකසීමට ඔබට වින්‍යාසය වෙනස් කළ හැකිය ( color.ui = never).
ගයි සමඟ

0

හෝ සියලු / බොහෝ වර්ණ ගැන්වීම් අක්‍රිය කරන්න:

git config --global color.ui false
git config --global color.branch false
git config --global color.diff false
git config --global color.interactive false
git config --global color.status false
git config --global color.grep false
git config --global color.pager false
git config --global color.decorate false
git config --global color.showbranch false

OP බලාපොරොත්තු වූයේ වර්ණ අක්‍රිය කිරීමට නොව වර්ණ සක්‍රිය කිරීමට ය . OP හි ඔහු එය කළ යුතු ආකාරය ප්‍රකාශ gitකළ අතර එය වඩාත් ගෝලීය අර්ථයෙන් එය කිරීමට යම් ක්‍රමයක් අවශ්‍ය වේ. එවැනි ක්‍රමයක් ගැන ඔබ දන්නේ නම්, කරුණාකර එය පැහැදිලි කිරීම සඳහා ඔබේ පිළිතුර සංස්කරණය කරන්න.
user207673

සමහර විට මිනිසුන් සමීපව සම්බන්ධ නමුත් තරමක් වෙනස් දෙයක් සොයයි - නමුත් පහත වැටීමට ස්තූතියි.
TheRiley

මම එයට කැමතියි R රිලී
රිචඩ් ලින්ඩ්හවුට්

0

ඔබේ ප්‍රතිදානය වර්ණ ගැන්වීම git diffසඳහා color / .gitconfig වෙත color.diff කොටසක් එක් කළ හැකිය. උදාහරණයක් වශයෙන්:

[color "diff"]
  new = bold italic 154
  old = bold italic 196

මෙන්න 154සහ 196ANSI 256 වර්ණ කේත. වැඩි විස්තර සඳහා බලන්න man git config.

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.