2009-06-30 6 views
294

Killswitchcollective.com's old article, 30 June 2009, имеет следующие входы и выходыНевозможно показать дерево Git в терминале

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 

Я интересуюсь, как вы получите дерево, как просмотр фиксаций в терминале без использования Gitk или Gitx в OS/ИКС.

Как вы можете получить древовидный вид коммитов в терминале?

+0

Это не важно, на вопрос, но статья в вопрос больше не доступен. Кэшированная копия доступна через Интернет-архив: https://web.archive.org/web/20110831142839/http://killswitchcollective.com/articles/36_git_it_got_it_good –

ответ

520

Как вы можете получить древовидный вид коммитов в терминале?

git log --graph --oneline --all 

хорошее начало.

Вы можете получить некоторые странные буквы. Это коды ASCII для цветов и структуры. Для решения этой проблемы добавьте следующую строку в ваш .bashrc:

export LESS="-R" 

таким образом, что вам не нужно использовать ASCII фильтр Tig путем

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

В статье text-based graph from Git-ready содержит другие варианты:

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

git log graph

Относительно в статье, которую вы упомянули, я бы пошел с Pod's answer: специальный ручной выпуск.


Jakub Narębski упоминает в комментариях tig, Ncurses на основе текстового режима интерфейса для мерзавца. См. their releases.
Он добавил a --graph option еще в 2007 году

+1

Ваша вторая команда дает мне http://files.getdropbox.com /u/175564/gitTree.png –

+1

Я только что протестировал его на своем репо. Он работает, но я нахожусь в Windows с MSysGit1.6.3. – VonC

+0

files.getdropbox.com заблокирован здесь на работе :(Я увижу вашу картинку примерно через час, чтобы вернуться домой. – VonC

228

Решение состоит в том, чтобы создать псевдоним в вашем .gitconfig и назвать его легко:

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

И когда вы называете его в следующий раз, вы будете использовать:

git tree 

чтобы положить его в ~/.gitconfig без необходимости редактировать его, вы можете сделать:

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

(Если вы не используете --global это поставит его в .git/конфигурации вашего текущего репо.)

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

Визуальное дерево с именами филиалов включены.

Используйте это, чтобы добавить его в качестве псевдонима

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

Вы называете его

git tree 

Git Tree

40

tig

Если вы хотите интерактивный дерево, вам Можно использование tig. Он может быть установлен brew на OSX и apt-get в Linux.

brew install tig 
tig 

Это то, что вы получите:

enter image description here

+0

Можете ли вы получить такое дерево, как в ответе VonC от Tig в настоящее время? Мы используем Tig в ответе VonC только как фильтр Ascii. –

0

Сохраняя ваши команды короткими сделают их легче запомнить:

git log --graph --oneline