ターミナルでGitツリーを表示できません


439

Killswitchcollective.comの古い記事2009年6月30日には、次の入力と出力があります。

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

OS / XでGitkまたはGitxを使用せずに、ターミナルでコミットのツリーのようなビューを取得する方法に興味があります。

ターミナルでコミットのツリーのようなビューを取得するにはどうすればよいですか?


2
それは質問にとって重要ではありませんが、問題の記事はもう利用できません。キャッシュされたコピーは、インターネットアーカイブから入手できます
Alan De Smet

回答:


795

ターミナルでコミットのツリーのようなビューを取得するにはどうすればよいですか?

git log --graph --oneline --all

良いスタートです。

奇妙な手紙を受け取るかもしれません。これらは、色と構造のASCIIコードです。この問題を解決するには、以下をに追加します.bashrc

export LESS="-R"

TigのASCIIフィルターを使用する必要がないように

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

Git-readyの記事のテキストベースのグラフには、他のオプション含まれています。

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

git logグラフ

あなたが言及した記事に関して、私はポッドの答えに行きます:アドホックな手作りの出力。


ヤクブNarębskiはコメントで言及 TIG、gitのためのncursesベースのテキストモードインターフェイスを。リリースをご覧ください。2007年にオプションが
追加されまし--graph


1
リポジトリでテストしました。動作しますが、WindowsのMSysGit1.6.3を使用しています。
VonC、2009年

files.getdropbox.comは仕事でここにブロックされている:(私は、約1時間に家を取得するための時間をあなたの写真が表示されます。
VonC

@Vonc:最初のコマンドに2つ入力しました。2番目のコマンドの画像と同様のビューが表示されます。
レオ・レオポルド・ヘルツ준 영

9
gitのテキストモードインターフェイスである 'tig'(ncursesを使用)もあり、git-logに '--graph'オプションが存在する前にターミナルにグラフィカルな履歴ビューがありました。
JakubNarębski、2009年

2
--decorateこの種の表示にも不可欠であることがわかります。これには、簡略化されたコミット名とともに参照名(ブランチ、リモート、ローカル)が表示されます。
Matt Enright、2012年

311

解決策は、エイリアスを作成し.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 / configに配置されます。)


1
これがデフォルトのエイリアスではないのはなぜですか?GitのCLIを使用することで少し
苛立たしく

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

ブランチ名が含まれたビジュアルツリー。

これを使用してエイリアスとして追加します

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

あなたはそれを

git tree

Gitツリー


2
とてもいいですね、これ。ここless -S説明するように、と組み合わせて使用​​することで、折り返された行によってツリーが難読化されないようにします。
djvg 2018年

60

tig

あなたがしたい場合は、対話型のツリーを、あなたが使用することができますtigbrewOSXおよびapt-getLinux でインストールできます。

brew install tig
tig

これはあなたが得るものです:

ここに画像の説明を入力してください


現在、TigによるVonCの回答のようなツリーを取得できますか?VonCの回答ではTigをAsciiフィルターとしてのみ使用しています。
レオ・レオポルド・ヘルツ준 영

4

コマンドを短くすると、覚えやすくなります。

git log --graph --oneline

1

誰でも完全なコマンドを書き留めておくことをお勧めします

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

エイリアスを作成するのではなく。

コマンドを頭に入れておくことは良いことなので、マシンを変更するときにエイリアスに依存しないようにします。


2
それは実際にはgit log --all --decorate --oneline --graph、ニーモニックの後git log a dogです;)
VonC '11年

@VonC最終結果は同じです。とにかく、私はあなたに同意します。フィードバックをお寄せいただきありがとうございます。
サックス奏者

はい、それは;)私の前のコメントの最後のスマイリーが(不完全に)伝えようとしていたことです。好きな順序でこれらのオプションを使用できます。私はただ「犬をログに記録する」を面白いと思います:)
VonC '12

1
またはscp ~/.bashrc root@remote:~/、エイリアスを使ってすばやく移動することもできます。
Adminy
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.