みなさんこんにちは! コンソールユーティリティについてお話したいと思います。これにより、Gitでの生産性が大幅に向上しました。また、皆さんの速度も向上することを願っています。 これはtigと呼ばれ、2006年にカナダのプログラマーJonas Fonsecaによって書かれましたが、今日に至るまで活発に開発され、優れた状態で維持されています。 その機能を示し(注意、内部に比較的重いgifがあります)、それを使用する最も便利な方法を共有したいと思います。
gitで作業するための視覚的なGUIは豊富にありますが、多くの開発者はコンソールで作業することを好みます。 gitには生産性を高める多くのツール(エイリアス、自動補完、自動エラー修正など)がありますが、コミットの履歴のナビゲート、差分の分析、gitの非難の表示など、まだ多くの通常のアクションにはかなりの時間がかかります常に便利というわけではありません。
設置
インストールの詳細については、プロジェクトのメインページのドキュメントを参照してください 。
MacOSで作業している場合、 tig
はHomebrewから入手できます。
brew install tig
Linuxでは、すべての主要なリポジトリでも利用できます。
apt-get install tig yum install tig
他のオプションの場合、標準的なスキームはソースコードをダウンロードすることです( リリースから、またはgit clone
を介してmake && make install
ます。これについては上記のリンクで詳しく説明しています。
使用する
リポジトリディレクトリからtig
コマンドを実行したときのインターフェイスの外観の簡単なデモを次に示します。
一般的に、グラフィカル(ただしテキストベース)インターフェイスから期待されるように、プログラムの使用は非常に直感的ですが、初心者はプログラムのすべての作業の基礎となるいくつかの基本的なキーボードショートカットを学ぶ必要があります。
メインキーはh
です。ヘルプウィンドウを表示します:)
ご覧のとおり、メインビュー、差分ビューモード、ログモード、ファイルツリービューモード、非難モード、現在のステータスビューなど、いくつかのビューがあります。
これらすべてのモードの切り替えは非常に簡単です。通常、矢印(またはj
/ k
)で目的のログエントリまたはファイルを選択してEnter
を押すか、たとえばblame
の場合は対応するキー( b
)を押すだけで十分です。
モードは全画面表示またはデュアルスプリットモードで表示されます。 後者は、水平または垂直のいずれかです。プログラム自体は、端末のアスペクト比に応じて選択し、その場で更新できます。 現在のモードを閉じる(および前のモードに戻る)には、単にq
(終了)を押します。 反対に、現在のモードでウィンドウを全画面表示に拡大するにはO
デュアルスプリットモードでモードを切り替えるTab
diff
表示モードでは、 [
と]
を使用して、変更された行の上下の行数を増やすと非常に便利]
(それぞれ減少と増加):
このプログラムには、ファイルを検索する機能( g
- grep
)、ウィンドウを検索する機能( /
)、外部エディタでファイルを開く機能( e
)もあり、一般的に、インターフェースはvim
精通している人にとって特に快適です。 たとえば、 :
を使用すると、さまざまなコマンドを入力したり、目的の行に移動したりできます。
ドロップインgitの置換
一部のコマンドでは、 tig
はgit
ドロップイン置換として簡単に機能します。
tig status tig log tig show tig blame file tig grep pattern tig refs tig stash tig status
また、ポケットベルモードの場合:
git show | tig
構成
tig
、構成に関して非常に柔軟性があります-構成ファイル(TIGRC_USERを介して構成できるパス)があります-〜 ~/.tigrc
およびreadlineのサポート。
独自のチームを作成できます。 たとえば、次のコマンドは、コミットIDをMacOS Xのクリップボードにコピーします。
bind generic 5 !@sh -c "echo %(commit) | pbcopy"
このプロジェクトには優れたドキュメントがあり 、機能の拡張に関する詳細はそこにあります。
おわりに
tig
は、毎日gitで生産性を向上させているユーティリティの1つです。 ウィンドウを切り替えることなく、ターミナルから非常に便利で直感的なインターフェイスを取得して、gitリポジトリの履歴と変更をすばやくナビゲートできます。
このプログラムはCで書かれており、非常に高速に動作します。これは、特に大規模なリポジトリでは常に優れています。