Không thể hiển thị cây Git trong thiết bị đầu cuối


439

Bài viết cũ của Killswitchcollective.com, ngày 30 tháng 6 năm 2009 , có các đầu vào và đầu ra sau đây

git co master
git merge [your_branch]
git push

upstream    A-B-C-D-E            A-B-C-D-E-F-G
                 \        ---->               \
your branch       C-D-E                        G

Tôi quan tâm làm thế nào bạn có được giao diện giống như cây trong thiết bị đầu cuối của mình mà không cần sử dụng Gitk hoặc Gitx trong OS / X.

Làm thế nào bạn có thể có được khung nhìn giống như cây trong các thiết bị đầu cuối?


2
Nó không quan trọng đối với câu hỏi, nhưng bài báo trong câu hỏi không còn nữa. Một bản sao được lưu trong bộ nhớ cache có sẵn thông qua Lưu trữ Internet: web.archive.org/web/20110831142839/http:// móc
Alan De Smet

Câu trả lời:


795

Làm thế nào bạn có thể có được khung nhìn giống như cây trong các thiết bị đầu cuối?

git log --graph --oneline --all

là một khởi đầu tốt

Bạn có thể nhận được một số chữ cái lạ. Chúng là mã ASCII cho màu sắc và cấu trúc. Để giải quyết vấn đề này, hãy thêm những điều sau vào .bashrc:

export LESS="-R"

sao cho bạn không cần sử dụng bộ lọc ASCII của Tig

git log --graph --pretty=oneline --abbrev-commit | tig   // Masi needed this 

Biểu đồ dựa trên văn bản bài viết từ Git-ready chứa các tùy chọn khác:

git log --graph --pretty=oneline --abbrev-commit

biểu đồ nhật ký git

Về bài viết mà bạn đề cập, tôi sẽ đi với câu trả lời của Pod : đầu ra thủ công đặc biệt.


Jakub Narębski đề cập đến trong các bình luận tig , một giao diện chế độ văn bản dựa trên ncurses cho git. Xem bản phát hành của họ .
Nó đã thêm một --graphtùy chọn trở lại vào năm 2007.


1
Tôi chỉ thử nó trên repo của tôi. Nó hoạt động nhưng tôi đang dùng Windows với MSysGit1.6.3.
VonC

files.getdropbox.com bị chặn ở đây tại nơi làm việc :( Tôi sẽ thấy hình ảnh của bạn sau khoảng một giờ, thời gian để về nhà.
VonC

@Vonc: Bây giờ tôi đã gõ hai cho lệnh đầu tiên. Tôi nhận được một cái nhìn tương tự như trong hình cho lệnh thứ hai.
Léo Léopold Hertz

9
Ngoài ra còn có 'tig', giao diện chế độ văn bản cho git (sử dụng ncurses), có chế độ xem lịch sử đồ họa trong thiết bị đầu cuối trước khi có tùy chọn '--graph' để git-log.
Jakub Narębski

2
Tôi thấy cũng --decoratekhông thể thiếu trên loại màn hình này - nó hiển thị cho bạn tên ref (nhánh, từ xa và cục bộ) cùng với tên cam kết viết tắt.
Matt Enright

311

Một giải pháp là tạo một Bí danh trong bạn .gitconfigvà gọi nó một cách dễ dàng:

[alias]
    tree = log --graph --decorate --pretty=oneline --abbrev-commit

Và khi bạn gọi nó lần sau, bạn sẽ sử dụng:

git tree

Để đặt nó trong ~ / .gitconfig mà không cần phải chỉnh sửa, bạn có thể làm:

git config --global alias.tree "log --graph --decorate --pretty=oneline --abbrev-commit"  

(Nếu bạn không sử dụng --global, nó sẽ đặt nó vào .git / config của repo hiện tại của bạn.)


1
Làm thế nào đây không phải là một bí danh mặc định? Tôi đoán nó sẽ làm cho CLI của Git bớt giận dữ hơn khi sử dụng và chúng ta không thể có điều đó ...
Timmmm

123
git log --oneline --decorate --all --graph

Một cây trực quan với tên chi nhánh bao gồm.

Sử dụng để thêm nó như một bí danh

git config --global alias.tree "log --oneline --decorate --all --graph"

Bạn gọi nó với

git tree

Cây Git


2
Rất đẹp, cái này Tôi sử dụng nó kết hợp với less -Snhư được mô tả ở đây , để ngăn chặn các đường bao bọc che khuất cây.
djvg

60

tig

Nếu bạn muốn một cây tương tác , bạn có thể sử dụng tig. Nó có thể được cài đặt bởi brewtrên OSX và apt-gettrong Linux.

brew install tig
tig

Đây là những gì bạn nhận được:

nhập mô tả hình ảnh ở đây


Hiện tại bạn có thể có được một cái cây như trong câu trả lời của VonC không? Chúng tôi chỉ sử dụng câu trả lời của Tig trong VonC dưới dạng bộ lọc Ascii.
Léo Léopold Hertz

4

Giữ các lệnh của bạn ngắn sẽ giúp chúng dễ nhớ hơn:

git log --graph --oneline

1

Tôi sẽ đề nghị bất cứ ai viết ra lệnh đầy đủ

git log --all --decorate --oneline --graph

thay vì tạo một bí danh.

Thật tốt khi nhận được các lệnh vào đầu bạn, vì vậy bạn biết điều đó bằng trái tim tức là không phụ thuộc vào bí danh khi bạn thay đổi máy móc.


2
Nó thực sự git log --all --decorate --oneline --graph, sau khi ghi nhớ git log a dog;)
VonC

@VonC Kết quả cuối cùng là như nhau. Dù sao, tôi đồng ý với bạn. Cảm ơn vì bạn đã phản hồi.
Nghệ sĩ saxophone

Vâng, đó là những gì mà nụ cười ;)ở cuối bình luận trước đây của tôi đã cố gắng (không hoàn hảo) để truyền đạt: bạn có thể sử dụng tùy chọn đó theo bất kỳ thứ tự nào bạn muốn. Tôi chỉ thấy "log a dog" thật buồn cười :)
VonC

1
Hoặc bạn có thể scp ~/.bashrc root@remote:~/và bí danh của bạn di chuyển thực sự nhanh chóng.
Quản trị viên
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.