git のステージング領域とローカル ライブラリの違いは何ですか?

青灯夜游
リリース: 2021-12-29 17:29:08
オリジナル
4735 人が閲覧しました

git の一時記憶域とローカル ライブラリの違い: 一時記憶域はインデックス領域とも呼ばれ、ワークスペースとローカル ウェアハウス間の移行領域であり、ライブラリのコード ステータスが記録されます。ワークスペース (変更があるかどうか)、またはどのような変更が行われたか)、ローカル リポジトリはローカル コードのステータスを記録します。

git のステージング領域とローカル ライブラリの違いは何ですか?

このチュートリアルの動作環境: Windows 7 システム、Git バージョン 2.30.0、Dell G3 コンピューター。

1. gitwarehouse に関連する概念の理解

git コマンドを深く理解したい場合は、git に関連するいくつかの概念を理解する必要があります。倉庫。まず、ローカル コード ディレクトリ D:\gittest ディレクトリを確認します。

git のステージング領域とローカル ライブラリの違いは何ですか?
.git は隠しディレクトリであり、それを確認するには隠しファイルを表示する必要があることに注意してください。

ワークスペース (作業ディレクトリ) : 簡単に言うと、ローカルに保存されたファイルまたはディレクトリはワークスペースに属し、コードの変更は通常、ワークスペースで実行されます。通常、隠し .git ディレクトリを除くローカル ファイルはワークスペースに属します。上の図にある mydir、file1.txt、file2.txt はすべてワークスペースに属しています。

ステージ: インデックス領域とも呼ばれ、名前が示すように、ワークスペースとローカル ウェアハウス間の遷移であり、ワークスペースのコード ステータスを記録します (変更、またはどのような変更が加えられたか)。 .git ディレクトリにあります。

ローカル リポジトリ (リポジトリ) : .git ディレクトリにあるローカル コードのステータスを記録します。

ステータスの理解:

考えてみてください。通常、重要なファイルを変更するときは、変更エラーを防ぐためにまずバックアップを作成する必要があります。回復する。ファイル自体が大きい場合、バックアップするとさらに多くのスペースが必要となり、コスト効率が悪くなります。ファイルそのものをバックアップするのではなく、ファイルの変更状況を記録するという方法もあります。ファイルのステータスは次のような説明になります。

ファイルの最初の行: xxx を ****

に置き換えます。 ファイルの 3 行目と 4 行目の間に行が追加されます。 , その内容は... …

端的に言えば、ファイルステータスはファイルの変更記録であり、変更記録に基づいて、ファイルにどのような変更を加えたかを知ることができます。変更記録を取得すれば、ファイル変更前の状態に戻すこともできます。

2. git コマンドの説明

ステータスの表示に関連するいくつかのコマンド:

git status 作業中のファイルの表示 変更点エリア、ステージングエリア、ローカルウェアハウスの間

#git diff ワークスペースとステージングエリアの違いを表示

git diff --cached ステージングエリアとローカルウェアハウスの違いを表示

git diff HEAD ワークスペースとローカル ウェアハウスの違いを確認する

一部のコマンドの対応する操作は次のとおりです。


git のステージング領域とローカル ライブラリの違いは何ですか?

以下は、具体例 ローカルファイルを変更すると関連領域も変更されることを説明する

変更前はワークスペース、ステージングエリア、ローカルウェアハウス間のステータスは一貫している

(1) ローカル変更されたファイル file1 .txt に行を追加します この行を追加します #git status ワークスペース、ステージング領域、およびローカル ウェアハウス ウェアハウスのファイルの変更を確認します

git のステージング領域とローカル ライブラリの違いは何ですか?上の図でわかるように、

Changes not staged for commit:

は、ファイルがワークスペース内で変更されたが、その変更がまだ一時記憶領域に送信されていないことを示していますgit diff View work エリアとステージングエリア間の変更

##図からわかるように、ワークエリアとステージングエリアの間で変更が発生しています。これはローカル ファイルの変更が原因であり、変更がステージング エリアに送信されていないためです。从git のステージング領域とローカル ライブラリの違いは何ですか?

git diff HEAD ワークスペースとローカル ウェアハウス間のステータスを表示します

上の図からわかるように、ワークスペースとローカル リポジトリの間にも違いが生じます。非常に簡単で、この時点ではローカルウェアハウスとステージングエリアのステータスは一致しています git のステージング領域とローカル ライブラリの違いは何ですか?

git diff --cached ステージングエリアとローカルウェアハウスを確認すると、両者に違いがないことがわかります。

(2) 一時記憶領域へのローカル変更の送信

git add. 一時記憶領域へのローカル変更の送信

git status

変更が一時ストレージ領域に送信されたことがわかります。

Changes to be commit:git のステージング領域とローカル ライブラリの違いは何ですか?
送信後、 git diff を使用します。確認すると、作業領域と一時保管領域に違いがなくなっていることがわかります。

ただし、ステージング領域と作業領域の間には違いがあります。

git diff --cached

git のステージング領域とローカル ライブラリの違いは何ですか?

同様に、git diff HEAD を使用すると、ワークスペースとローカル ウェアハウスの間にまだ違いがあることがわかります。

(3) 変更をローカル ウェアハウス

git commit -m "add a line in file1.txt" ステージング領域からローカル ウェアハウスに変更を送信します

git のステータスを確認し、「ブランチが先にあります」というプロンプトを表示しますof 'origin/master' by 1 commit. ワークスペース内の変更がローカル ウェアハウスに送信されましたが、まだリモート ブランチにプッシュされていないことを示します。

git のステージング領域とローカル ライブラリの違いは何ですか?

git diff、git diff --cached、git diff HEAD では、プロンプトに違いは見つかりません。ワークスペースへの変更はローカル ウェアハウスに送信されているため、現時点ではワークスペース、ステージング エリア、およびローカル ウェアハウスのステータスは一貫しています。

逆の操作

git add – git checkout は、ワークスペース ファイルをステージング領域の状態に戻し、ワークスペース ファイルをステージング領域ファイルに置き換えます。

たとえば、ワークスペースはファイル file1.txt を変更しましたが、この時点では一時記憶領域に送信されていません。変更を中止したい場合は、

git checkout file1.txt を使用してファイルを一時記憶域に戻します (変更を中止します)

git commit – git replace HEAD をプルします。最新のローカルへのコミット ウェアハウス内のファイルは、作業領域に影響を与えることなく、一時ストレージ領域に移動されます。

概要:

ローカル ファイル (ワークスペース) の特定の変更を破棄したい場合:

  • 変更がまだ破棄されていない場合ステージング領域に送信された場合は、 git checkcout を使用して復元できます。
  • 変更がステージング領域には送信されているが、ローカル ウェアハウスには送信されていない場合は、最初に git replace HEAD を使用してステータスを復元します。ステージング領域を作成し、git checkout を使用してワークスペースを復元します。

推奨される学習: 「Git チュートリアル

以上がgit のステージング領域とローカル ライブラリの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!