web-dev-qa-db-ja.com

gitkを理解するためのガイドですか?

私はgitを開発者チームに紹介していますが、gitkは素晴らしいツールであることがわかりました。 gitkを理解するにはgitの履歴とビューアーツール自体の両方を理解する必要があるため、理解することも非常に困難です。

「gitkを使用したgit履歴の初心者向けガイド」のようなものを参照している人はいますか?

78
krosenvold

Gitkに特化したものを見たことはありません。 「どのように機能するのか」という観点から見たところです。すべての背後にあるコマンド(または少なくとも一般的に同等のコマンド)を知ることは、コマンドラインツールの使用方法をより簡単に学習するのに役立ち、gitkをよりよく理解するためのドキュメントの参照先も示します。

ファイルメニュー

これは、最近のいくつかのメジャーバージョンで多少変更されています。現在の状態を説明しています。

  • 更新と再読み込み:これはおそらく最も複雑なものです。リロードは、同じ設定でプログラムを開始したかのようにすべてを更新します。これは、ブランチが削除/リベースされている場合、一部のコミットがダングリングしている場合、それらはもう表示されないことを意味します。一方、更新では、すべての情報が更新されますが、以前に表示されたすべてのコミットが表示されます。これは、リベースして混乱しないようにしたい場合に使用するのに最適なものです。元のバージョンとリベースされたバージョンの両方を見ることができます。

  • 参照:かなり明白です。参照には、タグとブランチ(リモートの場合もあります)が含まれます。あなたはそれらを読み直し、特定の1つをクリックして履歴に表示することができます。

視聴回数

manページ にあるように、gitkは git-rev-list オプションを使用して、表示する履歴を指定します。これらは、「表示」メニューでインタラクティブに設定することもできます。マニュアルページは、ビューを制御する方法に関する詳細情報を見つけるのに最適な場所です(主にコミット制限セクションにあります)。 git-logを以前に見たことがあるなら、これを見たことがあるでしょう。

助けて

ここにキーバインドのリストがあります!甘い。

コンテキストメニュー

これは、一般的な共通/デフォルトの動作モードで、いくつかの一般的なgit磁器コマンドを提示します。それらをリストすることは、あなたがまだ何をしていないのかを理解するための適切なドキュメントを見つけるのに少なくとも役立ちます!

  • git-diff (Diff this <-> selected
  • git-format-patch (パッチを作成)
  • git-tag (タグを作成)
  • git-diff-tree (ファイルにコミットを書き込む、めったに使用されない)
  • git-branch
  • git-cherry-pick
  • git-reset (ここへのブランチをリセット)これにより、ソフト、混合、またはハードのプロンプトが表示され、それぞれの動作が簡単に思い出されます。マニュアルページの長い説明ですが、実際にインデックスを取得するには、インデックスの概念を理解する必要があります。

「コミットをマーク」および関連するコマンドは、この時点で自明のはずです。

ブランチのコンテキストメニューには、 git-checkout とgit-branchの-d(削除)モードがあります。

中間セクション

  • SHA1 ID:現在のコミットのハッシュ。端末にコピー/貼り付けして、gitkを使用して特定のコミットでアクションを実行する場合に非常に便利です。ここにハッシュを貼り付けることもできます。

  • 進む/戻るボタン、行番号...明らかです!

  • 見つけて!ここのオプションもかなり一目瞭然ですが、みんなの教育のために、それらは git-log parametersに類似しています:「含む」は--grep、「タッチパス」は引数、文字列の追加/削除は-S(pickaxe)です。

メッセージ/差分ペイン

ここにコミットメッセージとgit-diffの出力があります-これはgit-log -pを使用するようなもので、少し余分なものがあります:

  • 「ブランチ」はgit branch -a --contains=<commit>と同等です

  • 「Precedes」/「Follows」はgit describe [--contains] <commit>と同等です( git-describe

91
Cascabel

以下に、スクリーンショットを使用したgitkのブランチ履歴の視覚化の概要を示します。

http://lostechies.com/joshuaflanagan/2010/09/03/use-gitk-to-understand-git/

  1. 左上のペインには、このリポジトリへの一連のコミットが表示され、最新のものが一番上に表示されます。
  2. トニー・スタークによる3つのコミットがあります。
  3. 最新のコミットのコミットメッセージは「3番目のコミット」でした。
  4. 「master」という名前のローカルブランチが1つあり、最新のコミットを指します。
  5. 単一のリモート参照ブランチがあります。「Origin」という名前のリモートリポジトリからの「master」ブランチで、最新のコミットも指します。
  6. 一番上のコミットの横にある黄色の点は、現在作業フォルダーにあるスナップショットであることを示します(HEADと呼ばれます)
  7. 2番目のコミットを強調表示したので、下のペインで詳細を確認できます
  8. 2番目のコミットのコミットSHA(Subversionリビジョン番号に類似した一意の識別子)
    3d024dd9e4a83d8c6a9a143a68b75d4b872115a6
  9. 右下には、2番目のコミットの影響を受けるファイルのリストが表示されます
  10. 左下には、完全な差分を含むコミットの詳細が表示されます
  11. 右下のペインでファイルをクリックすると、左下のペインの差分が対応するセクション12にスクロールします。
23
idursun

「gitkと履歴の組み合わせ」に関して初心者が実際に使用できるのは、gitkツリービューを見ることで何が起こったのかを特定する方法です。

私の知る限り、ツリーを見る正しい方法は(もちろん)です:

 1. each node is a commit
 2. ultimate parent is at the bottom
 3. direct child to a commit is the one that happened first in the same branch (no matter who did it)
 4. the node with 2 or more children indicates ... ?
 5. merge commit node has 2 parents.
 6. rebase is recognized ... ?

スクリーンショットも歓迎します。

ツリーは実際にはリポジトリの現在の状態を表しています。すばらしいのは、ツリービューを見ることで何が起こったのかを知ることができればです。

ありがとう

v。

3
tishma

Gitkインターフェースに関して私が有用だと思う唯一のものは、ニース(カラフル)ブランチの概要です。

GitのGUIが必要な場合は、WindowsではTortoiseGit、MacではGitX、LinuxではQGitを確認してください。

1
Davy Landman