Làm thế nào để tô màu cho bảng điều khiển Git?


371

Gần đây tôi thấy rằng gitbảng điều khiển trong Windows có màu, ví dụ: Màu xanh lá cây để thêm, màu đỏ để xóa, v.v ... Làm cách nào để tô màu cho gitbàn điều khiển của tôi như vậy?

Để cài đặt nó, tôi đã sử dụng lệnh: $ sudo apt-get install git-core


6
Bắt đầu từ git1.8.4, bạn sẽ thấy màu theo mặc định. Xem câu trả lời của tôi dưới đây .
VonC

1
@VonC git 1.9.1 trên Ubuntu 14.04, đã không xảy ra. Phải tự đặt cấu hình từ câu trả lời của JoelPurra.
Izkata

1
@Izkata lạ, tôi sẽ kiểm tra nó sau, nhưng còn git 2.1+ thì sao? (như tôi đã nhận xét bên dưới trong stackoverflow.com/questions/10998792/iêu )
VonC

Câu trả lời:


682

Theo ghi nhận của @VonC , color.uimặc định là autotừ Git 1.8.4


Từ câu hỏi Stackexchange của Unix & Linux Làm thế nào để tô màu đầu ra của git? câu trả lời của @Evgeny :

git config --global color.ui auto

Đây color.uilà một cấu hình meta bao gồm tất cả các color.*cấu hình khác nhau có sẵn với gitcác lệnh. Điều này được giải thích sâu trong git help config.

Vì vậy, về cơ bản, bằng chứng trong tương lai dễ dàng và dễ dàng hơn so với việc cài đặt các color.*cài đặt khác nhau một cách riêng biệt.

Giải thích sâu từ git configtài liệu :

color.ui: Biến này xác định giá trị mặc định cho các biến như color.diffcolor.grepđiều khiển việc sử dụng màu trên mỗi họ lệnh. Phạm vi của nó sẽ mở rộng khi nhiều lệnh tìm hiểu cấu hình hơn để đặt mặc định cho --colortùy chọn. Đặt nó thành alwaysnếu bạn muốn tất cả đầu ra không dành cho tiêu thụ máy sử dụng màu, truehoặc hoặc autonếu bạn muốn đầu ra đó sử dụng màu khi được ghi vào thiết bị đầu cuối, hoặc falsehoặc nevernếu bạn thích lệnh git không sử dụng màu trừ khi được bật rõ ràng với một số cấu hình khác hoặc --colortùy chọn.


11
Điều này cũng hoạt động trên OSX, không chỉ linux như câu hỏi đã được hỏi
StackExchange What The Heck

Có lẽ cần phải thêm "đúng" vào cuối. git config - global color.ui auto true
Vamshi

6
@Skeptor: không, autolà đủ.
Joel Purra

2
@Phani: vâng, nó dai dẳng.
Joel Purra

5
Nó liên tục vì nó thêm ui = automục vào [color]phần trong ~/.gitconfigtệp của người dùng .
Andris

55

Ví dụ: xem https://web.archive.org/web/20080506194329/http://www.arthurkoziel.com/2008/05/02/git-configuration/

Phần thú vị là

Đầu ra màu:

git config --global color.branch auto
git config --global color.diff auto
git config --global color.interactive auto
git config --global color.status auto

3
Tôi đang sử dụng một phiên bản cũ hơn của git và cài đặt color.ui autokhông hoạt động với tôi, điều này đã làm. Cảm ơn bạn.
Matt K

30

Thêm vào tệp .gitconfig mã tiếp theo của bạn:

  [color]
    ui = auto
  [color "branch"]
    current = yellow reverse
    local = yellow
    remote = green
  [color "diff"]
    meta = yellow bold
    frag = magenta bold
    old = red bold
    new = green bold
  [color "status"]
    added = yellow
    changed = green
    untracked = cyan

7

Git tự động tô màu hầu hết đầu ra của nó nếu bạn yêu cầu. Bạn có thể nhận được rất cụ thể về những gì bạn muốn tô màu và làm thế nào; nhưng để bật tất cả các màu thiết bị đầu cuối mặc định, đặt color.ui thành true:

git config --global color.ui true

6

Trong Ubuntu hoặc bất kỳ nền tảng nào khác (vâng, Windows cũng vậy!); bắt đầu từ git1.8.4 , được phát hành 2013-08-23 , bạn sẽ không phải làm gì cả :

Nhiều hướng dẫn dạy người dùng đặt "color.ui" thành "auto" là điều đầu tiên sau khi bạn đặt " user.name/email" để giới thiệu bản thân với Git. Bây giờ biến mặc định là " auto".

Vì vậy, bạn sẽ thấy màu sắc theo mặc định.


2
(tốt, ngay cả Windows, tùy thuộc vào thiết bị đầu cuối: stackoverflow.com/a/12133244/6309 )
VonC

2
Sử dụng Ubuntu vào năm 2014, đã cài đặt git và vẫn phải chạy git config --global color.ui auto. Điều tương tự cũng đúng với máy Mac của tôi, người duy nhất mặc định autolà Git Bash trên PC Windows của tôi.
sargas

1
@sargas Chắc chắn, bạn cần cài đặt từ PPA : launchpad.net/~git-core/+archive/ppa (cho Ubuntu) hoặc git-scm.com/doad/mac (cho Mac)
VonC

1
Tôi thấy, vì vậy nó phụ thuộc vào nguồn. Tôi đánh giá cao thời gian của bạn để bình luận về điều này.
sargas

6

Trong ~/.gitconfigtệp của bạn , chỉ cần thêm điều này:

[color]
  ui = auto

Nó chăm sóc tất cả các lệnh git của bạn.


5

Một cách khác là chỉnh sửa .gitconfig(tạo một nếu không tồn tại), ví dụ:

vim ~/.gitconfig

và sau đó thêm:

[color]
  diff = auto
  status = auto
  branch = auto

3
như @ chuntao-lu đã đề cập [color] ui = autolà đủ.
Chacko Mathew

5

GIT sử dụng đầu ra màu theo mặc định nhưng trên một số hệ thống như CentOS thì nó không được bật. Bạn có thể kích hoạt nó như thế này

git config --global color.ui  true 
git config --global color.ui  false 
git config --global color.ui  auto 

Bạn có thể chọn lệnh yêu cầu của bạn từ đây.

Ở đây --global là tùy chọn để áp dụng hành động cho mọi kho lưu trữ trong hệ thống của bạn. Nếu bạn chỉ muốn áp dụng tô màu cho kho lưu trữ hiện tại thì bạn có thể làm một cái gì đó như thế này -

 git config color.ui  true 

1

Với Git 2.18, bạn có nhiều quyền kiểm soát hơn về cách bạn muốn chỉ định màu trong bảng điều khiển.
Lệnh " git config" sử dụng các tùy chọn riêng biệt, ví dụ " --int", " --bool", v.v. để chỉ định loại người gọi muốn giá trị được hiểu là .

Một cái mới--type=<typename> tùy chọn " đã được giới thiệu, giúp cho việc xác định các loại mới sẽ sạch hơn.

Xem cam kết fb0dc3b (18 tháng 4 năm 2018) và cam kết 0a8950b (09 tháng 4 năm 2018) của Taylor Blau ( ttaylorr) .
(Được hợp nhất bởi Junio ​​C Hamano - gitster- trong cam kết e3e042b , ngày 08 tháng 5 năm 2018)

builtin/config.c: hỗ trợ --type=<type>như bí danh ưa thích cho--<type>

git config từ lâu đã cho phép người gọi cung cấp một 'trình xác định kiểu', hướng dẫn git config cho (1) đảm bảo rằng các giá trị đến có thể được hiểu là loại đó và (2) các giá trị gửi đi được hợp quy hóa theo loại đó.

Trong một loạt khác, chúng tôi đề xuất mở rộng chức năng này --type=color--defaultthay thế --get-color.

Tuy nhiên, theo truyền thống, chúng tôi thường sử dụng --colorđể "tô màu đầu ra này", thay vì "giá trị này nên được coi là một màu".

Hiện tại, git configkhông hỗ trợ loại màu này, nhưng chúng ta nên cẩn thận để tránh ngồi xổm trên tùy chọn này quá sớm, để git configcó thể hỗ trợ --color(theo nghĩa truyền thống) trong tương lai, nếu điều đó là mong muốn.

Trong bản vá này, chúng tôi hỗ trợ --type=<int|bool|bool-or-int|...>thêm --int, --boolv.v.
Điều này cho phép bản vá sắp tới nói trên hỗ trợ truy vấn một giá trị màu với mặc định thông qua --type=color --default=..., mà không cần lãng phí--color .

Chúng tôi giữ lại hành vi lịch sử của việc khiếu nại khi nhiều --<type>cờ theo kiểu kế thừa được đưa ra, cũng như mở rộng điều này sang các --type=<type>cờ kiểu mới xung đột . --int --type=int(và cặp giao hoán của nó) không phàn nàn, nhưng --bool --type=int(và cặp giao hoán của nó) thì không.

Vì vậy, trước khi bạn có --bool--int, bây giờ ( tài liệu ):

--type <type>

' git config' sẽ đảm bảo rằng mọi đầu vào hoặc đầu ra đều hợp lệ theo (các) ràng buộc loại đã cho và sẽ hợp thức hóa các giá trị gửi đi trong<type> dạng chính tắc.

<type>Bao gồm hợp lệ :

  • ' bool': chuẩn hóa các giá trị là " true" hoặc " false".
  • ' int': chuẩn hóa các giá trị dưới dạng số thập phân đơn giản. Một hậu tố tùy chọn ' k', ' m' hoặc ' g' sẽ khiến giá trị được nhân với 1024, 1048576 hoặc 1073741824 khi nhập.
  • ' bool-or-int': chuẩn hóa theo ' bool' hoặc ' int', như được mô tả ở trên.
  • ' path': chuẩn hóa bằng cách thêm một ~giá trị dẫn đến $HOME~uservào thư mục chính cho người dùng được chỉ định. Trình xác định này không có hiệu lực khi đặt giá trị (nhưng bạn có thể sử dụng git config section.variable ~/từ dòng lệnh để cho trình bao của bạn thực hiện việc mở rộng.)
  • ' expiry-date': chuẩn hóa bằng cách chuyển đổi từ chuỗi ngày cố định hoặc tương đối sang dấu thời gian. Trình xác định này không có hiệu lực khi đặt giá trị.
--bool::
--int::
--bool-or-int::
--path::
--expiry-date::
  Historical options for selecting a type specifier. Prefer instead `--type`,
(see: above).

Lưu ý rằng Git 2.22 (quý 2 năm 2019) giải thích " git config --type=color ..." có nghĩa là thay thế " git config --get-color", nhưng có một sự khác biệt nhỏ không được ghi lại, hiện đã được sửa.

Xem cam kết cd8e759 (ngày 05 tháng 3 năm 2019) của Jeff King ( peff) .
(Được hợp nhất bởi Junio ​​C Hamano - gitster- trong cam kết f6c75e3 , ngày 20 tháng 3 năm 2019)

config: --type=colorđầu ra tài liệu là một dòng hoàn chỉnh

Mặc dù --type=colortùy chọn " " mới hơn " " git configcó nghĩa là tương thích hướng lên với --get-colortùy chọn " " truyền thống , không giống như tùy chọn sau, đầu ra của nó không phải là một dòng không hoàn chỉnh, thiếu đoạn cuối.
Điều đó làm cho nó phù hợp với đầu ra của các loại khác như "git config --type=bool ".

Tài liệu này , vì đôi khi nó gây ngạc nhiên cho người dùng không nghi ngờ.

Điều này bây giờ đọc:

--type=color [--default=<default>]được ưu tiên hơn --get-color (nhưng lưu ý rằng --get-colorsẽ bỏ qua dòng mới được in bởi --type=color).


Bạn có thể thấy git config --type=boolđược sử dụng với Git 2.26 (Q1 2020) để thay thế "git config --bool các cuộc gọi "" trong các mẫu mẫu.

Xem cam kết 81e3db4 (19 tháng 1 năm 2020) của Lucius Hu ( lebensterben) .
(Được hợp nhất bởi Junio ​​C Hamano - gitster- trong cam kết 7050624 , ngày 30 tháng 1 năm 2020)

templates: sửa tùy chọn loại không dùng nữa --bool

Đã ký tắt: Lucius Hu

Các --booltùy chọn để git-configđược đánh dấu là lịch sử, và người dùng được khuyến khích sử dụng --type=boolđể thay thế.
Cam kết này thay thế tất cả các lần xuất hiện --booltrong các mẫu.

Cũng lưu ý rằng, không có tùy chọn loại NỮA khác được tìm thấy, trong đó có --int, --bool-or-int, --path, hoặc --expiry-date.


0

tham khảo tại đây: https://nathanhoad.net/how-to-colours-in-git/

các bước:

  1. Mở ~ / .gitconfig để chỉnh sửa

    vi ~ / .gitconfig

  2. Dán mã sau đây:

    [color]
      ui = auto
    [color "branch"]
      current = yellow reverse
      local = yellow
      remote = green
    [color "diff"]
      meta = yellow bold
      frag = magenta bold
      old = red bold
      new = green bold
    [color "status"]
      added = yellow
      changed = green
      untracked = cyan
    
  3. Lưu các tập tin.

Chỉ cần thay đổi bất kỳ tập tin trong repo địa phương của bạn và làm

git status

Đã có # answer-29320572 của Victor
phê bình
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.