Git の基本的な動作原理の詳細な分析

WBOY
リリース: 2022-04-07 13:31:33
転載
3775 人が閲覧しました

この記事では、Git に関する関連知識を提供し、主に Git の基本的な動作原理、入門レベルのチュートリアルを紹介し、Git ローカル ウェアハウスを操作して初心者がすぐに Git を使い始めるのに役立ちます。誰もが助けなければなりません。

Git の基本的な動作原理の詳細な分析

## 推奨学習: 「

Git 学習チュートリアル

1. パーティションとワークフロー

1. Git パーティション

Git パーティションには、ワークスペース、ステージング領域、ローカル リポジトリ (ローカル リポジトリ)、およびリモート リポジトリ (リモート リポジトリ) が含まれます。

  1. ワークスペース ワークスペース (ワークスペース) は、ローカル コードが配置されるディレクトリであり、.git/ (ローカル ウェアハウス) が配置されるディレクトリでもあります。 ) 保存されています。

  2. ステージング領域 ステージング領域 (インデックス/ステージ) は、ワークスペースおよびローカル ウェアハウスのキャッシュ スペースであり、これから作成される情報を記録します。ローカル ウェアハウスに送信される (バージョン ライブラリ) ファイルの変更情報、.git/ ディレクトリ内のインデックス ファイルは一時的な保存領域です。

  3. ローカル ウェアハウス (リポジトリ) ローカル ウェアハウス (リポジトリ) は、ローカル ライブラリまたはバージョン ライブラリとも呼ばれ、すべてのローカル バージョン (コミット送信レコード) を保存します。ローカル ウェアハウス ファイルは .git/ ディレクトリにあります。

  4. リモート ウェアハウス
  5. リモート ウェアハウス (リモート) ネットワーク上では、GitHub、Gitee、GitLab でリモート ウェアハウスを作成できます。ローカル ウェアハウスと同様に、リモート ウェアハウスもコードが異なります。バージョンも保存されますが、これらのバージョンは複数のローカル リポジトリから取得することができます。
    #2. ワークフロー

---------------------- ---- ------------------------下の写真はインターネットからのものです--------------- -- ------------------------------------------

上の図は、異なる Git パーティション間の操作コマンドをわかりやすく示しています。
Git の基本的な動作原理の詳細な分析

コードをアップロードする機能を実装したい場合は、ワークスペースの add を使用して一時保存領域にファイルを追加し、一時保存領域はコミットを通じてバージョンをローカル ウェアハウスに送信します。 、ローカル ウェアハウスはプッシュを使用してバージョンをリモート ウェアハウスにプッシュします。;

ワークスペースで変更されたファイルは、チェックアウト コマンドを使用してローカル ウェアハウスまたはステージング領域から復元できます。コードを更新する場合は、ワークスペース内のブランチをリモート ウェアハウスの最新バージョンにコピーするには、プル コマンドを使用できます。
  • リモート ウェアハウスのクローンを使用して、リモート ウェアハウスのメイン ブランチをローカル ウェアハウスにコピーします。フェッチ コマンドプルはプルと似ていますが、プルはローカル コードをマージするのに対し、フェッチはローカル ウェアハウスがローカル ウェアハウスであるかどうかに関係なく、最新バージョンのみをローカル リポジトリに取得する点が異なります。
  • 2. ローカル ウェアハウスの初期化
  • 1. git init

ローカル ウェアハウス (バージョン ライブラリ) は、git init コマンドを使用して作成する必要があります (または、リモート ウェアハウス クローンから直接作成できます (後で紹介します)。

ワークスペース (コード ストレージ ディレクトリ) に入り、「git init」と入力すると、git はワークスペースに新しい .git/ ディレクトリを作成します:


2. .git の簡単な紹介/ directory
Git の基本的な動作原理の詳細な分析

新しく作成された .git/ ディレクトリには 3 つのテキスト ファイルがあります:

Git の基本的な動作原理の詳細な分析config はローカル ウェアハウスの構成情報を保存します。
# description はウェアハウスの名前を説明するために使用されます。

    HEAD はローカル ウェアハウスの現在のブランチで、デフォルトは master で、refs/heads/master を指します。 refs/ ディレクトリには主にいくつかのブランチ情報が格納されます;
  • 後でローカル ウェアハウスが操作されると、logs/ - 送信されたレコードの保存、index - 一時保存領域などの他のファイルが生成されます。
  • [注意]
.git/ 内のファイルを手動で変更しないでください。ローカル ウェアハウスの構造が損傷し、悪影響が生じる可能性があります。

3. ユーザー情報の構成

1. ユーザー名と電子メール構成の概要

ローカル ウェアハウスを初期化した後の最初の作業は、ユーザー構成情報をローカル ウェアハウスに追加することです。 , ユーザー名と電子メール アドレスを含む,

ここでのユーザー名と電子メール アドレスは、ホスティング プラットフォーム (gitee など) のアカウントとは直接の関係はありません。

. その唯一の機能は、他のユーザーまたはホスティング プラットフォームに知らせることです。コードのアップローダー情報。メール アドレスが間違っています。入力してもコードをアップロードできなくなります。

例として、以下の「Zhang San」と「Li Si」を使用してコードをアップロードしました。電子メール アドレスは本物ではありませんが、アップロードは成功する可能性があります: (コミット情報に誤りがありました)
Git の基本的な動作原理の詳細な分析
Li Four の電子メール アドレスは明らかに本物ではありません。
Git の基本的な動作原理の詳細な分析
「Zhang San」と「Li Si」のメールアドレスは gitee アカウントに紐付けられていないため、アバターをクリックしてもユーザー情報は表示されません。ユーザー設定メールに が記入されている場合、アップロード者のアカウント情報は gitee で確認できます。
Git の基本的な動作原理の詳細な分析
gitee ユーザーの送信メール アドレスは、gitee->個人ホームページ->個人設定->メールボックス管理で設定および表示できます:
Git の基本的な動作原理の詳細な分析

2. git config を使用してユーザー情報を構成する

ユーザー名とメール アドレスについて注意すべき点をたくさん説明しましたが、実際、ユーザー情報の構成は非常に簡単です:

git config --global user.name "your name"git config --global user.email "your email"
ログイン後にコピー

user.name の後にユーザー名を続け、必要なものを入力します。
user.emailの後にはユーザーのメールアドレスが続きますので、任意に入力してください。
–global は、グローバル プロパティを構成するために使用されます
Git の基本的な動作原理の詳細な分析
コードをローカル ウェアハウスに送信するとき、git は最初にローカル ウェアハウスの .git/config ファイルを取得します。ユーザー情報がない場合は、グローバル設定ファイルが使用されます (近接性の原則に沿って)。

グローバル設定ファイルはシステム ユーザー ディレクトリ/ユーザー名/.gitconfig に保存されます。これにはユーザー属性のみが含まれます。
Git の基本的な動作原理の詳細な分析

-global が追加されていない場合、ローカル ウェアハウスのユーザー構成のみが設定されます。ローカル ウェアハウスのユーザー構成情報は、.git/config
Git の基本的な動作原理の詳細な分析 に保存されます。
上の写真は私のものです ローカル設定のユーザー名のみが設定されています このとき、ローカルウェアハウスに変更を送信すると、送信レコード(下記)のユーザー名はローカル設定を使用します。ユーザーのメールボックスがローカルに構成されていない場合でも、メールボックスはグローバル構成で指定されたメールボックスを引き続き使用します。
Git の基本的な動作原理の詳細な分析

4. 一時記憶域ファイルの管理

ユーザー情報を設定した後、コードの送信を検討し始めることができますが、考えたくない場合もあります。作業全体について エリア内のすべてのファイルはローカルの倉庫 (バージョン ライブラリ) に送信されます。一時記憶領域 (インデックス/ステージ) の存在により、この問題は解決されます。最初にコード ファイルを一時記憶領域に追加できます。変更する必要があると感じた場合は、一時記憶領域からファイルを削除できます。ファイルが選択されたと感じるまで領域を選択し、ほぼ完了したら、次のステップ (ローカルの倉庫に送信) に進みます。

1. Git ファイルのステータス

ステージング領域を管理する前に、ワークスペース ファイルのいくつかのステータスも把握する必要があります:

  • Untracked 未追跡、ステージング領域のファイルはワークスペースに追加されておらず、バージョン管理に参加していません;
  • Unmodified 未変更、バージョン管理に追加されていますが、リポジトリ内のファイル スナップショット ;
  • Modified は変更され、バージョン管理に追加されており、最後にリポジトリに追加されたときのスナップショットとは異なります;
  • Staging はステージングされました。次のステップはローカル ウェアハウス (バージョン ライブラリ) に送信できます。

-------------------------------------- -------下の写真はインターネットからのものです--------------------------- -------- ------------------------
Git の基本的な動作原理の詳細な分析
git status コマンドワークスペース ファイルの現在のステータスを表示するために使用できます。 ステータス:

#查看特定文件的状态
git status [filename]#查看所有文件状态
git status

#精简的方式显示文件状态
git status -s
ログイン後にコピー

2. ファイルを一時記憶領域に追加します。

まず、ワークスペース内のすべてのファイルのステータスを確認し、ファイルがありません:
Git の基本的な動作原理の詳細な分析

现在创建3个文件,再次使用git status(-s表示精简显示),3个文件的状态为Untracked,??为精简显示下Untracked的标志,意思是新创的文件没有被本地仓库(版本库)跟踪。
Git の基本的な動作原理の詳細な分析
git add [文件…] 可以添加一个或多个文件到暂存区,使文件状态变为Staged,A表示该文件被add到暂存区。
Git の基本的な動作原理の詳細な分析
也可以使用 git add . 或 git add -A 将工作区所有文件添加到暂存库(除了.gitignore里声明的文件,本文暂不介绍)。
Git の基本的な動作原理の詳細な分析

3. 删除暂存区的文件

既然可以向暂存区添加文件,那么反向操作必然也不能少,git rm --cached [文件…] 命令可以将暂存区的文件移除,使其恢复到Untracked状态。
Git の基本的な動作原理の詳細な分析

4. 文件修改管理

如果已经存入暂存区,但在文件提交到本地仓库前,我们对其进行了修改,那么它的状态将变为Modified。
Git の基本的な動作原理の詳細な分析
对于Modified状态的文件,我们可以使用git add将修改后的版本加入到暂存区,也可以使用git checkout -- [file...]将工作区的该文件恢复到暂存区的版本。

git add a.c重新添加a.c到暂存区:
Git の基本的な動作原理の詳細な分析
下图为使用git checkout -- a.c从暂存区恢复a.c文件,下图中我没有加 “ --”,它的作用是让checkout不检测任何其他选项参数,目的是防止该命令把a.c当做一个分支(checkout 还有一个作用是切换分支)。
Git の基本的な動作原理の詳細な分析
对Modified状态下的文件使用 git diff 可以得出文件修改的详细记录,git diff和diff命令虽然作用都是对比文件,但git diff的作用是对比不同的状态下的同一文件,而diff用来对比两个不同的文件。
Git の基本的な動作原理の詳細な分析

五、提交文件到本地仓库

文件添加到暂存区的目的就是将其提交到本地仓库(版本库),提交命令为git commit -m “message”

我们可以在commit 后面添加文件,这样能指定提交的文件:
Git の基本的な動作原理の詳細な分析
通过git log 可以查看提交记录,HEAD为本地仓库当前分支,指向主分支master:
Git の基本的な動作原理の詳細な分析
直接使用 git commit -m “message” 可以将整个暂存区都提交到本地仓库:

Git の基本的な動作原理の詳細な分析

#以一行的形式显示所有提交版本:
git log --pretty=oneline
ログイン後にコピー

Git の基本的な動作原理の詳細な分析

#一行显示,只显示哈希值的前7位:
git log --oneline
ログイン後にコピー

Git の基本的な動作原理の詳細な分析

#显示历史提交版本与当前版本的间隔数:
git reflog
ログイン後にコピー

Git の基本的な動作原理の詳細な分析

六、推送到远程仓库

代码文件提交到本地仓库后,还需要推送到远程仓库进行托管。

1. 创建远程仓库

我以码云为例,远程仓库的创建可以通过以下三步实现:
Git の基本的な動作原理の詳細な分析

2. 添加远程仓库地址

git remote add 命令可以添加远程仓库,name为远程仓库地址的别名,自定义,url为仓库网络地址。
如果要用https的方式上传代码,需要添加远程仓库https地址;用ssh上传代码,则url填远程仓库ssh地址。

まず、コード クラウド ウェアハウスのホームページからウェアハウスのアドレスをコピーします:
Git の基本的な動作原理の詳細な分析

リモート ウェアハウスの起点のローカル エイリアスに名前を付けます:
Git の基本的な動作原理の詳細な分析
リモート ウェアハウスローカルエイリアスが競合しない限り、複数のエイリアスを設定できます。

3. リモート ウェアハウス アドレスを確認する

git Remote -v コマンドでリモート ウェアハウス アドレスを確認することも、git config -l## を通じて確認することもできます。
Git の基本的な動作原理の詳細な分析

#4. リモート ウェアハウス アドレスを削除します。

git リモート 削除 ローカル エイリアス名を使用してリモート アドレスを削除できます:
Git の基本的な動作原理の詳細な分析

5. リモート ウェアハウスへのプッシュ

まずリモート ウェアハウスのエイリアスを確認します現在設定しているリモート ウェアハウスの https プロトコル アドレスに対応するエイリアスは https、 ssh プロトコル アドレスに対応するエイリアスは ssh です。これら 2 つのアドレスは実際には同じウェアハウスですが、プロトコルが異なります。


Git の基本的な動作原理の詳細な分析

https Upload

git Push name はローカル ウェアハウスのアップロードを実現できます。名前は構成ファイル内のリモート ウェアハウスのエイリアスです。 https を使用してアップロードします。アップロードを完了するにはアカウントとパスワードを入力する必要があります。Windows システムはアカウントとパスワードを自動的に保存します。Windows が保存したユーザー名とパスワードを変更したい場合は、「Gitee の変更」を参照してください。ログイン認証情報。
最初のアップロードが失敗することがあります。 git Push -u name master を使用してみてください。このコマンドの機能は、ネーム ウェアハウスのメイン ブランチを上流ブランチとして使用することです。 -u および – set-upstream 効果は同じです。
Git の基本的な動作原理の詳細な分析
Git の基本的な動作原理の詳細な分析
Git の基本的な動作原理の詳細な分析

ssh アップロード

SSH を使用してアップロードする場合は、SSH を生成する必要があります。公開鍵は gitee の個人設定の SSH 公開鍵設定に保存されます。具体的なプロセスについては、SSH 鍵の生成とコードの実装を参照してください。アップロード


最初のアップロードが失敗する場合があります。 git Push -u name master の使用を試みることができます。このコマンドの機能は、ネーム ウェアハウスのメイン ブランチを上流ブランチとして使用することです。-u と –set-upstream は同じ効果があります。
Git の基本的な動作原理の詳細な分析
Git の基本的な動作原理の詳細な分析

7. リモート ウェアハウスからクローンを作成、取得、またはプルします。

1. リモート ウェアハウスをローカル ウェアハウスにクローンを作成します。

Git クローン作成では、リモート ウェアハウスをローカル ウェアハウスにコピーし、同時にローカル ウェアハウスを自動的に初期化できます。

任意のディレクトリで Git bash を開き、 git clone [] と入力します。repo はリモート ウェアハウスの URL、dir はクローン ウェアハウスのストレージ パスです (次の場所に作成する必要はありません)事前)、入力されていない場合は、デフォルトでリモート リポジトリ名 (ローカル エイリアスではありません) が使用されます。


[注意]
: クローン作成にはプッシュと同様にパスワードが必要です。
クローン作成が成功したら、ウェアハウス ディレクトリに入ります。これはアップロード時のワークスペースとまったく同じであり、送信ログも同じです。 Git の基本的な動作原理の詳細な分析

Git の基本的な動作原理の詳細な分析2. リモート ウェアハウスの取得 (フェッチ)

git fetch の機能は、リモート ウェアハウスのブランチをローカル ウェアハウスにコピーし、最新バージョンを保存することです。リモート ウェアハウス ブランチを取得した後、それを現在のブランチに手動でマージする必要があります。

コマンド形式: git fetch []、リポジトリはリモート ウェアハウスのネットワーク アドレスです。

git merge はブランチをマージするために使用されます


Git の基本的な動作原理の詳細な分析3. リモート ウェアハウスをプルする (プル)

git pull は git fetch に似ています。ただし、git pull はリモート ウェアハウスのブランチを現在のローカル ブランチに自動的にマージします。


Git の基本的な動作原理の詳細な分析
推奨学習: 「

Git ビデオ チュートリアル

以上がGit の基本的な動作原理の詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
git
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート