git の一時記憶域とローカル ライブラリの違い: 一時記憶域はインデックス領域とも呼ばれ、ワークスペースとローカル ウェアハウス間の移行領域であり、ライブラリのコード ステータスが記録されます。ワークスペース (変更があるかどうか)、またはどのような変更が行われたか)、ローカル リポジトリはローカル コードのステータスを記録します。
このチュートリアルの動作環境: Windows 7 システム、Git バージョン 2.30.0、Dell G3 コンピューター。
1. gitwarehouse に関連する概念の理解
git コマンドを深く理解したい場合は、git に関連するいくつかの概念を理解する必要があります。倉庫。まず、ローカル コード ディレクトリ D:\gittest ディレクトリを確認します。
.git は隠しディレクトリであり、それを確認するには隠しファイルを表示する必要があることに注意してください。
ワークスペース (作業ディレクトリ) : 簡単に言うと、ローカルに保存されたファイルまたはディレクトリはワークスペースに属し、コードの変更は通常、ワークスペースで実行されます。通常、隠し .git ディレクトリを除くローカル ファイルはワークスペースに属します。上の図にある mydir、file1.txt、file2.txt はすべてワークスペースに属しています。
ステージ: インデックス領域とも呼ばれ、名前が示すように、ワークスペースとローカル ウェアハウス間の遷移であり、ワークスペースのコード ステータスを記録します (変更、またはどのような変更が加えられたか)。 .git ディレクトリにあります。
ローカル リポジトリ (リポジトリ) : .git ディレクトリにあるローカル コードのステータスを記録します。
ステータスの理解:
考えてみてください。通常、重要なファイルを変更するときは、変更エラーを防ぐためにまずバックアップを作成する必要があります。回復する。ファイル自体が大きい場合、バックアップするとさらに多くのスペースが必要となり、コスト効率が悪くなります。ファイルそのものをバックアップするのではなく、ファイルの変更状況を記録するという方法もあります。ファイルのステータスは次のような説明になります。
ファイルの最初の行: xxx を ****
に置き換えます。 ファイルの 3 行目と 4 行目の間に行が追加されます。 , その内容は... …
端的に言えば、ファイルステータスはファイルの変更記録であり、変更記録に基づいて、ファイルにどのような変更を加えたかを知ることができます。変更記録を取得すれば、ファイル変更前の状態に戻すこともできます。
2. git コマンドの説明
ステータスの表示に関連するいくつかのコマンド:
git status 作業中のファイルの表示 変更点エリア、ステージングエリア、ローカルウェアハウスの間
#git diff ワークスペースとステージングエリアの違いを表示git diff --cached ステージングエリアとローカルウェアハウスの違いを表示git diff HEAD ワークスペースとローカル ウェアハウスの違いを確認する一部のコマンドの対応する操作は次のとおりです。(1) ローカル変更されたファイル file1 .txt に行を追加します この行を追加します #git status ワークスペース、ステージング領域、およびローカル ウェアハウス ウェアハウスのファイルの変更を確認します
上の図でわかるように、
Changes not staged for commit:は、ファイルがワークスペース内で変更されたが、その変更がまだ一時記憶領域に送信されていないことを示していますgit diff View work エリアとステージングエリア間の変更
##図からわかるように、ワークエリアとステージングエリアの間で変更が発生しています。これはローカル ファイルの変更が原因であり、変更がステージング エリアに送信されていないためです。
git diff HEAD ワークスペースとローカル ウェアハウス間のステータスを表示します上の図からわかるように、ワークスペースとローカル リポジトリの間にも違いが生じます。非常に簡単で、この時点ではローカルウェアハウスとステージングエリアのステータスは一致しています
git diff --cached ステージングエリアとローカルウェアハウスを確認すると、両者に違いがないことがわかります。(2) 一時記憶領域へのローカル変更の送信
git add. 一時記憶領域へのローカル変更の送信
git status 変更が一時ストレージ領域に送信されたことがわかります。Changes to be commit:
送信後、 git diff を使用します。確認すると、作業領域と一時保管領域に違いがなくなっていることがわかります。
同様に、git diff HEAD を使用すると、ワークスペースとローカル ウェアハウスの間にまだ違いがあることがわかります。
(3) 変更をローカル ウェアハウス
git commit -m "add a line in file1.txt" ステージング領域からローカル ウェアハウスに変更を送信します
git のステータスを確認し、「ブランチが先にあります」というプロンプトを表示しますof 'origin/master' by 1 commit. ワークスペース内の変更がローカル ウェアハウスに送信されましたが、まだリモート ブランチにプッシュされていないことを示します。
git diff、git diff --cached、git diff HEAD では、プロンプトに違いは見つかりません。ワークスペースへの変更はローカル ウェアハウスに送信されているため、現時点ではワークスペース、ステージング エリア、およびローカル ウェアハウスのステータスは一貫しています。
逆の操作
git add – git checkout は、ワークスペース ファイルをステージング領域の状態に戻し、ワークスペース ファイルをステージング領域ファイルに置き換えます。
たとえば、ワークスペースはファイル file1.txt を変更しましたが、この時点では一時記憶領域に送信されていません。変更を中止したい場合は、
git checkout file1.txt を使用してファイルを一時記憶域に戻します (変更を中止します)
git commit – git replace HEAD をプルします。最新のローカルへのコミット ウェアハウス内のファイルは、作業領域に影響を与えることなく、一時ストレージ領域に移動されます。
概要:
ローカル ファイル (ワークスペース) の特定の変更を破棄したい場合:
推奨される学習: 「Git チュートリアル 」
以上がgit のステージング領域とローカル ライブラリの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。