gitkを理解するためのガイド?[閉まっている]


83

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

「gitkを使ったgitの歴史の初心者向けガイド」のようなものへの良い言及はありますか?



ブログlostechies.com/joshuaflanagan/2010/09/03/…はgitkのプレゼンテーションをウォークスルーし、gitkの右クリックメニューを理解するのに役立つ場合があります。
koppor 2017

回答:


93

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

ファイルメニュー

これは、過去数回のメジャーバージョンで多少変更されています。現在の状態について説明しています。

  • 更新と再読み込み:これはおそらく最も紛らわしいことです。リロードは、同じ構成でプログラムを最初からやり直したかのようにすべてを更新します。これは、ブランチが削除/リベースされた場合、一部のコミットが現在ぶら下がっている場合、それらはもう表示されないことを意味します。一方、Updateはすべての情報を更新しますが、以前に表示されたすべてのコミットは引き続き表示されます。これは、リベースを行っていて、混乱していないことを確認したい場合に使用するのに最適です。元のバージョンとリベースされたバージョンの両方を確認できます。

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

ビュー

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

助けて

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

コンテキストメニュー

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

  • git-diff(Diff this <-> selected
  • git-format-patch(パッチを作成)
  • git-tag(作成)
  • git-diff-tree(ファイルへの書き込みコミット、めったに使用されません)
  • git-branch
  • git-cherry-pick
  • git-reset(ここにブランチをリセット)これは、ソフト、混合、またはハードのいずれかを要求し、それぞれが何をするかを簡単に思い出させます。manページに長い説明がありますが、実際にインデックスを取得するには、もちろんインデックスの概念を理解する必要があります。

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

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

中央セクション

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

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

  • 見つけて!ここでのオプションもかなり自明ですが、すべての人の教育にとって、それらは類似していますgit-logパラメーターにます。「含む」は--grep「パスに触れる」は引数であり、文字列の追加/削除は-S(pickaxe)です。

メッセージ/差分ペイン

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

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

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


gitkメニューコマンドには十分公平で、+ 1です。あなたは「gitk」の部分でうまくやっていますが、私はgitkと歴史の組み合わせの説明を本当に望んでいました。
krosenvold 2009年

これをもっと良い答えにしたいと思います!gitの歴史の説明が何を意味するのかはっきりしていません。説明が必要なのは、分岐とマージの概念ですか?コミットがハッシュを介して前のコミットに直接依存しているという事実は?文字通り画面に履歴が表示されたら、説明することはあまりないようです。
Cascabel

私は、多分私は鈍角申し訳ないんだけど、私は理解していないどのようにだけgit commit -a、あるいはgit addgitkインチ 足りないものはありますか?
ubershmekel 2012

2
@ubershmekel gitkは、これらのいずれも実行しません。それらのGUIが必要な場合、組み込みのものはgit guiです。ただし、この質問はgitkに関するものであり、gitkは本質的に履歴閲覧ツールです(少しブランチを操作します)。
カスカベル2012

24

これは、スクリーンショットを使用したgitkでのブランチ履歴の視覚化の概要です。

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

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

3

「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。


1
4. ...ブランチ、6。...既存のコミットを並べ替えるだけなので、まったくありません
センティック2012

1

gitkインターフェースについて私が役立つと思うのは、素敵な(カラフルな)ブランチの概要だけです。

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


4
これは少し急いで判断すると思います。確かに、アクションビルダーはかっこいいですが、gitkコンテキストメニューに組み込まれているものの多くが欠落しています。gitkは、視覚的なフィードバックでブランチを操作する非常に簡単な方法を提供します。これは、新しいユーザーにとって特に便利です。
Cascabel

1
私はちょっとcliが好きですが、ブランチとマージを確認するためだけにgitkを呼び出すこともあります。私は新しいユーザーにgitkインターフェースをお勧めしません..おそらく彼らを怖がらせますか?
デイビーランドマン

不思議なことに、お二人とも正しいと思います。
innaM 2009年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.