コンテンツにスキップ
GitTree

レッスン 15 · 日常の仕事

ファイルを無視し、追跡されていない作業を安全に消去します

コース無視ポリシーをコミットし、追跡されていない使い捨てのスクラッチ ファイルのみをプレビューして削除します。無視されたビルド出力、追跡された作業、およびリカバリスコープを分離しておきます。

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

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

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

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

何を学ぶか

  • 無視ルールと追跡ファイルについて説明します。
  • 狭い範囲のクリーンをプレビューします。
  • アプリの正確な削除リストを調べます。
  • ネイティブの削除とアプリのスナップショットを区別します。

始める前に

レッスン 14 が終了したところから開始します。main/H7 clean、最小限の .gitignore には dist/ のみが含まれ、タグ v0.1.0 は H7 に固定されています。このビデオでは、ルールによってすでに非表示になっている、生成された dist/index.html が追加されます。

このビデオは、Ubuntu 24.04 の Git 2.52.0 と GitTree 2.0 を使用して録画されました。無視ファイル、そのコミット、スクラッチ ファイル、およびクリーンはアプリ内で行われました。前の状態、プレビュー、チェックはターミナルで実行され、プレビュー用の別のコピーが作成されました。 macOS または Windows では何も実行されず、記録された Linux システムは Ubuntu だけです。 GitTree のソース Git フロアは 2.39.0 です。

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

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

概念と状態の効果

無視ルールは通常、追跡されていない候補を非表示にします。すでにインデックスが作成されているパスの追跡を停止したり、履歴をスクラブしたり、秘密を保護したりすることはありません。他のファイルと同様に、共有ポリシーをコミットします。

クリーン操作では、スコープ内の追跡されていないパスが削除されます。ネイティブ git clean には組み込みの回復スナップショットがありません。追跡されていないファイルの削除は、個別に保存しない限り、通常のコミット履歴から回復できません。

GitTree の追跡されていないファイルをクリーンアップ…正確なリストを作成し、リストされたバイトを削除前に保護します。オプション「無視されたファイルを含める」と「無視されたファイルのみ」はスコープを変更し、相互に排他的です。ソース保護は、特定の Undo が記録されたことを証明するものではありません。

.gitignore を保存/コミットすると、インデックス/ツリー/メインが変更されます。スクラッチをクリーニングすると、追跡されていないディスク ファイルのみが削除されます。リモート参照のコミットや更新は行われません。無視された dist はデフォルトの clean オプションのままになります。

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

元のコース リポジトリのみを使用してください。完全な IGNORE を保存し、最初にステージングしてコミットします。次に、完全な SCRATCH を作成します。これは意図的に無視されたscratch/の外側にあるため、デフォルトのクリーンリストで表示できるようになります。ネイティブの削除を実行する場合は、デモの外側に別のコピーを保存してください。

完全なファイル入力

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

.gitignore — 無視

ファイルの抜粋 · gitignore
node_modules/
dist/
coverage/
reports/
.course-cache/
*.log
scratch/

course-scratch.txt — スクラッチ

出力
Disposable course scratch. No useful work.

GitTreeで

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

  1. パレット Edit .gitignore… で「.gitignore in gittree-features」が開きます。 Rules, one per line をクリックしてすべてを選択し、完全な IGNORE 本文を入力 (または貼り付け) します。 Save。これはコミットではなくファイルを書き込みます。 (ダイアログには、パスの Add Template チェックと Why is this ignored? チェックもあります。)
  2. 作業上の変更を表示します。 .gitignore のみ、ステージ ファイルをレビューします。要約: 生成されたコース ファイルを無視します。 1 つのファイルへの変更を 1 回コミットします。
  3. 新しいファイル… → course-scratch.txt → 作成;正確なスクラッチを保存し、ステージングは​​行いません。追跡されていないことを確認します。
  4. 以下のネイティブ パスをスコープとしたドライランを実行します。別のパスがリストされている場合は、削除する前に停止してください。
  5. パレット Clean Untracked Files… により、「gittree-features の追跡されていないファイルをクリーンアップしますか?」が開きます。 「1 ファイル、0 フォルダー (0 無視)、43 B」と表示され、course-scratch.txt がリストされています。リストの下には、リストされているすべてのファイルの回復スナップショットが、何かが削除される前に refs/ogt/trash に保存され、Undo によって新しいファイルが何も配置されていない場所にファイルが戻されることが記載されています。
  6. [追跡されていないフォルダーを含む]、[無視されたファイルを含む]、および [無視されたファイルのみ] はオフのままにしておきます。予想される候補は course-scratch.txt のみです。有益な作品が出てきたらキャンセルしてください。
  7. 一度「1 項目を削除」を選択し、実際の結果を待ちます。アプリはまずバイトを保護します。 Undo を要求する前にその証拠をキャプチャしてください。
  8. クリーンなステータスと dist/index.html が無視されていることを確認します。ビューを美しくするためにスナップショットを削除したり、無視されたクリーニングを有効にしたりしないでください。

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

ターミナル内

最初に IGNORE を保存します。ネイティブコミットの代替:

Command · bash
git add -- .gitignore
git commit --quiet -m "chore: ignore generated course files"
git check-ignore dist/index.html

観察された出力:

出力
dist/index.html

そのコミット後にのみ正確な SCRATCH を作成し、必要に応じて外部に保存してから、次のようにします。

Command · bash
git clean -n -- course-scratch.txt

観察された内容:

出力
Would remove course-scratch.txt

この使い捨てパスを確認した後のみ、ネイティブ代替 (アプリの成功後ではない):

Command · bash
git clean -f -- course-scratch.txt
git status --short

観察された除去:

出力
Removing course-scratch.txt

ステータスはサイレントです。このネイティブ -f は、-fdx や広範なクリーンアップではなく、指定された使い捨てファイルに限定されます。ネイティブ Git はアプリのスナップショットを作成しませんでした。別のコピーで実行された、変更された入力の非変異プレビュー: git clean -n -X は、-d がないと Git が無視された dist/ フォルダーに入らないため、何も印刷しませんでした。 git clean -n -x は同じ理由で course-scratch.txt のみをリストしました。 git clean -n -x -- course-scratch.txt dist/index.html は両方のパスに名前を付け、両方をリストします。パスに名前を付けると、範囲が広がります。範囲指定された除去を拡張された破壊的な形式に置き換えないでください。

結果

Where you end: Main には、生成されたコース ファイルを無視して、I8 を完全な IGNORE でコミットするという面倒な作業があります。 course-scratch.txt は、明示的にクリーンにした後は存在しません。ワーク/インデックスはクリーンで、dist は無視され、タグ/サーバー参照は変更されません。

よくある間違い

  • 無視された追跡ファイルが履歴を残すと仮定します。
  • -x または app を使用すると、スコープのレビューが行われずにオプションが無視されました。
  • ネイティブクリーンにはUndoアプリが必要です。

何か問題が発生した場合

プレビューが異なる場合はキャンセルしてください。ネイティブの削除では、復元するために別の保存ファイルが必要です。 app Undo は実際のスナップショット/ジャーナルと現在のパスに依存し、削除を保証するものではありません。

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

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

  1. 質問 1 / 6

    追跡履歴の消去を無視しますか?

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

  2. 質問 2 / 6

    スコープクリーン後に何が残るのでしょうか?

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

  3. 質問 3 / 6
    必須

    クリーニングすると新しいコミットが作成されますか?

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

  4. 質問 4 / 6
    必須

    無視されたファイルを含めるように入力を変更します: スコープ?

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

  5. 質問 5 / 6

    Native clean ran.アプリの取り消しは保証されていますか?

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

  6. 質問 6 / 6
    必須

    意図した洗浄を証明するものは何ですか?

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

6 個中 0 個が正解です

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

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

練習する

IGNORE がコミットされ、scratch が存在せず、dist が無視されていることを確認します。別のプレビューのみで、無視された候補を削除せずに、-X と -x でどの候補が表示されるかを予測します。

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

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

要約

  • 無視することは追跡を解除することではありません。
  • クリーンスコープは明示的です。
  • 回復は保存されたバイトに依存します。

用語集の用語の紹介

無視してください。きれい — تنظيف;追跡されていません — 追跡されていません。リカバリ スナップショット — 回復スナップショット。

ビデオトランスクリプト

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

トランスクリプトを表示する
  1. 正確なチェックポイントから開始します。
  2. ブランチとインデックスに名前を付けます そして作業バージョン。
  3. 分離されたコースのコピーのみを準備します。
  4. 正確な共有無視ポリシーを保存します。
  5. 無視するファイルのみをコミットします。
  6. スクラッチファイルを保存しておく 意図的に追跡を外した。
  7. 最初に正確な名前付きパスをプレビューします。
  8. すべての削除候補を読みます。
  9. クリーンなオプションを広げないでください。
  10. 使い捨てファイルのみを削除します。
  11. 何が残ったかを確認する 消えたものも同様に。
  12. 追跡履歴の消去を無視しますか?
  13. ルールは追跡されていない候補者を隠します。 彼らは歴史を書き換えません。
  14. スコープクリーン後に何が残るのでしょうか?
  15. 名前付きの追跡されていないスクラッチのみ これらのオプションを使用すると削除されます。
  16. クリーニングすると新しいコミットが作成されますか?
  17. この操作によりディスクが削除されます bytes outside the index.
  18. Change input to include 無視されたファイル: 範囲?
  19. 拡張オプションにより候補が変更されます。 行動する前にもう一度プレビューしてください。
  20. Native clean ran.アプリの取り消しは保証されていますか?
  21. ネイティブ クリーンでは GitTree は作成されません ジャーナルまたは追跡されていないコンテンツのバックアップ。
  22. 意図した洗浄を証明するものは何ですか?
  23. 削除済みと保存済みの両方をチェックする 名前付きクエリの状態。
  24. 実際の結果を検証してみると、 単なるメッセージではありません。
  25. 行動する前に、変更された入力を予測します。
  26. リカバリする前に有用な作業を保存します。
  27. 続行する前にチェックポイントを証明してください。
  28. 検証結果を保存する 次のステップのために。