コンテンツにスキップ
GitTree

レッスン 17 · 日常の仕事

ファイルの履歴と行の作成者を追跡する

ファイル履歴を使用して、README レビュー行を Maya に帰属させ、フッター リマインダーを Leo に帰属させ、作成者をコードの承認として扱うことなく非難します。

このブラウザに進行状況が保存されました。

再生すると、YouTube からビデオが読み込まれます (プライバシー強化モード)。

英語ナレーション · English and Arabic 件のキャプション

動画ページを開くYouTubeで見る

何を学ぶか

  • ファイル履歴を現在の行の属性から分離します。
  • 著者とコミッターを個別に読み取ります。
  • コミットをチェックアウトせずに、以前の責任を検査します。
  • 帰属の証拠をセキュリティの信頼とは別に保管してください。

始める前に

レッスン 15 が終了したところから開始します。コミットを無視したメイン、クリーン。 README.md はオリジナルの README のままで、index.html にはレッスン 11 の Leo のフッターが含まれています。公開された機能と v0.1.0 タグは変更されていません。

ビデオは、Ubuntu 24.04 の Git 2.52.0 と GitTree 2.0 を使用して録画されました。README.md はアプリに保存され、Maya のコミットはチームメイトの準備としてネイティブに作成され、履歴ビューと責任ビューはアプリで開かれました。前の状態と責任のリードバックがターミナルで実行されました。 macOS または Windows では何も実行されず、記録された Linux システムは Ubuntu だけです。 GitTree のソース Git フロアは 2.39.0 です。

GitTree はサインインを求めます。無料プランでは、ここでのすべてのステップがカバーされます。プロバイダー アカウント、プロ/トライアル、API 認証情報、インターネット サービスは必要ありません。ローカルのベアオリジンは GitLab または CI ではありません。すべてのアイデンティティは example.com を使用します。このレッスンをソース チェックアウト内で実行しないでください。

両方を連続してではなく、同一の入力で GitTree またはネイティブ パスのいずれかを介してミューテーションを作成します。読み取り専用検証はどちらの後にも続きます。最終的な作業として説明される準備はすべて、ネイティブの準備としてラベル付けされており、決して発明されたアプリの機能ではありません。

概念と状態の効果

ファイル履歴には、パス/履歴ルールによって選択されたコミットがリストされます。 blame は、現在の行を、選択したオプションの下で最後に導入したコミットに帰属させます。どちらも、誰が機能を設計したかについての完全な社会的説明ではありません。

作成者とコミッターは異なる場合があります。このフィクスチャは、意図的に同じ架空の Maya のアイデンティティを彼女のコミットの両方に使用し、レオのコミットの両方に使用します。名前/メールアドレスはメタデータであり、所有権の証明や信頼できるコードではありません。

空白を無視して移動された行をたどると、ファイルのバイトや履歴を変更せずに帰属の回答が変更される可能性があります。選択した責任のあるコミットからステップバックして、その前のコミットを検査します。選択はチェックアウトではありません。

明示的な README コミットは main のみを進めます。その後の履歴/責任の選択と切り替えにより、アプリのビュー状態が変更されます。インデックスなし、動作中、ローカルブランチまたはサーバーの突然変異は発生しません。

正確なプロジェクトの状態を準備する

元のメイン保存で、以下の README_MAYA を完了します。ネイティブの準備では、この 1 つのコミットに対してのみ git -c user.name/user.email が使用され、グローバル設定や誤解を招く作成者のみのオーバーライドは使用されません。実際の結果のメタデータをキャプチャします。

完全なファイル入力

以下のフェーズでのみ保存します。これらは、最後に改行を含む完全な UTF-8/LF 本文です。 Markdown フェンスは決して貼り付けないでください。変更されていない実行可能ファイルは、名前付き入力を継承します。別のバリアントのバージョンでオリジナルを上書きしてはなりません。

README.md — README_MAYA

出力
# GitTree Features

A fictional landing page used to learn Git and GitTree.

All people and addresses in this repository are fictional.
No form submits information to a server.

Review changes deliberately and preserve useful work.

GitTreeで

パレット: Command+Shift+P (Ubuntu では Ctrl+Shift+P);正確な名前のコマンドを入力して選択します。名前付き参照アクションは、引数のないパレット ショートカットではなく、その行のコンテキスト メニューを使用します。

  1. ファイルを表示します。 README.md を開いて、完全な README_MAYA を保存します。追加されたレビュー行を確認します。
  2. 以下の明示的な架空のアイデンティティを使用して追加をネイティブにコミットします。このチームメイトに準備のラベルを付けます。アプリが既存の作者を書き換えたとは主張しないでください。
  3. [ファイルの表示]、[README.md] の順に README.md を開くと、ファイル ビューには File、Changes、Blame、History の 4 つのタブがあります。 History を選択します。このファイルのコミットのみがリストされ、Maya が一番上に表示されます。 Maya のコミットを選択します。
  4. パスの差分とメタデータを検査します。履歴リスト ArrowUp/ArrowDown を使用して、チェックアウトせずに別のリビジョンを検査します。
  5. README.md で Blame を選択します。ヘッダーには「Blame @」という短いコミット ID が含まれており、行はコミットごとにグループ化されています。追加された行をクリックします。発明された固定 SHA ではなく、Maya の実際の主題とアイデンティティを期待してください。
  6. Index.html を開き、「Blame」を選択します。フッター行の獅子座属性を個別に検査します。
  7. Ignore whitespace changes と Follow moved lines は、責めビューの表示オプションです。コミットのグループをクリックし、Blame before this commit を選択して非難をそのまま表示し、次に Back to the later blame を選択します。
  8. Back to Graph; Jump to HEAD (Ubuntu では Ctrl+Shift+H)。検査後、元のメインがきれいで、実際のチップが変化していないことを確認します。

すべての通常のコミット: 概要が記載された主題です。説明が空です。以前のコミットを修正し、フックをスキップし、サインオフ者を追加し、別の作成者を追加し、コミット後にプッシュし、空のコミットをオフに許可します。共著者はいません。指定したファイルのみをステージングし、N 個のファイルへの変更を 1 回コミットする (1 つのファイル)、または代わりに Command+Enter を押します。本当の結果を待ちましょう。明示的に修正するレッスンでは、指定されたオプションのみが変更されます。

ターミナル内

README_MAYA を保存した後:

Command · bash
git add -- README.md
git -c user.name="Maya Chen" -c user.email=maya@example.com commit --quiet -m "docs: explain deliberate review"
git log -1 --format='%an <%ae>%n%cn <%ce>' -- README.md
git blame --line-porcelain -- README.md
git blame --line-porcelain -- index.html
git status --short

コミットは成功します。実際の作成者のクエリには次のものが含まれます。

出力
Maya Chen <maya@example.com>
Maya Chen <maya@example.com>

完全な非難出力には、実際の変数 SHA/時間および行ごとのレコードが含まれます。新しい README 行の検証済みレコード フィールドには、著者 Maya Chen、著者メール <maya@example.com>、概要ドキュメント: 意図的なレビューの説明、タブ接頭辞付きの変更を意図的にレビューし、有用な作業を保存することが含まれます。フッター レコードは、Leookafor と彼のリマインダー コミットを識別します。これは、HTML 行ごとに統一された作成者として作成されるものではなく、実際のツリーから測定される必要があります。最終ステータスは空です。

読み取り専用の代替手段:

Command · bash
git log --follow --format='%s' -- README.md
git blame -w -- README.md
git blame -M -- README.md

これらのオプションは、帰属に関するさまざまな質問に答えます。出力レイアウトは Git バージョン固有であり、porcelain フィールドの抜粋で置き換えられるのではなく、キャプチャされます。

結果

Where you end: Maya の 1 つの README 追加はドキュメントとしてコミットされています: メインでの意図的なレビューの説明。責任はその改行は Maya にあり、フッターは Leo にあると考えられます。検査では、HEAD/インデックス/ワークはクリーンな状態で変更されません。

よくある間違い

  • 責任を責任スコアと呼ぶ。
  • 作成者が常にコミッターと等しいと仮定します。
  • 単にその行を検査するためにコミットをチェックアウトします。

何か問題が発生した場合

表示オプションをクリアするか、後の責任に戻る/HEAD にジャンプします。ナビゲーションをリセットする必要はありません。属性が異なる場合は、履歴を編集する前に、実際のパス、リビジョン、空白/移動の設定を検査してください。

理解度を確認してください

各質問に答えてから、その理由を読みましょう。 「必須」とマークされた質問は、レッスンの完了にカウントされます。

  1. 質問 1 / 6

    Blame answers what?

    答えを 1 つ選択してください。

  2. 質問 2 / 6

    どの区別が重要ですか?

    当てはまるものをすべて選択してください。

  3. 質問 3 / 6
    必須

    古いファイル リビジョンを選択してください: HEAD?

    答えを 1 つ選択してください。

  4. 質問 4 / 6
    必須

    空白を無視するようにクエリを変更します: バイト?

    答えを 1 つ選択してください。

  5. 質問 5 / 6

    異なる非難の結果:最初にチェックしますか?

    答えを 1 つ選択してください。

  6. 質問 6 / 6
    必須

    結果を証明するものは何ですか?

    当てはまるものをすべて選択してください。

6 個中 0 個が正解です

必須の質問に正しく答えると、レッスンを完了できます。

このブラウザで確認しました。

練習する

実際の行磁器レコードを使用して、README レビュー行が Maya に属し、フッターが Leo に属していることを証明します。別の読み取り専用クエリで -w を切り替えて、ここで属性が変更されていないことが、オプションが決して重要ではないことを証明しない理由を説明してください。

あなた自身の確認: サイトはあなたのコンピュータを認識できません。

レッスンを完了するには、必須の質問に正しく答え、実践的な演習を確認してください。

要約

  • 歴史と責任はさまざまな質問に答えます。
  • メタデータは信頼ではありません。
  • 検査ではHEADは動きません。

用語集の用語の紹介

非難 — 責任。ファイル履歴 - ファイル履歴。著者 — ヤステル;コミッター — المُودِع。

ビデオトランスクリプト

ビデオのナレーションが次々と流れます。

トランスクリプトを表示する
  1. 正確なチェックポイントから開始します。
  2. ブランチとインデックスに名前を付けます そして作業バージョン。
  3. 分離されたコースのコピーのみを準備します。
  4. 完全なレビュー文書を保存します。
  5. 架空のことを記録する チームメイトのアイデンティティを明示的に示します。
  6. ファイル履歴は選択したパスに従います。
  7. メタデータを検査せずに checking out the commit.
  8. 追加された行の実際の帰属を読みます。
  9. レオのフッターを個別に確認してください。
  10. View options can change 帰属に関する質問。
  11. 分岐を変更せずに戻ります。
  12. Blame answers what?
  13. 帰属は歴史です 社会的な判断ではなく、疑問です。
  14. どの区別が重要ですか?
  15. メタデータとクエリされたバージョン 表示された証拠を決定します。
  16. 古いファイル リビジョンを選択してください: HEAD?
  17. インスペクションでは、チェックアウトではなくビューが選択されます。
  18. 空白を無視するようにクエリを変更します: バイト?
  19. オプションは属性を変更します 保存されたコンテンツではなく計算です。
  20. 異なる非難の結果:最初にチェックしますか?
  21. さまざまなクエリ入力を合法的に実行できます。 異なる帰属が得られます。
  22. 結果を証明するものは何ですか?
  23. Check line evidence and 独立したリポジトリの状態。
  24. 実際の結果を検証してみると、 単なるメッセージではありません。
  25. 行動する前に、変更された入力を予測します。
  26. リカバリする前に有用な作業を保存します。
  27. 続行する前にチェックポイントを証明してください。
  28. 検証結果を保存する 次のステップのために。