Gitチュートリアルでのブランチ管理を詳しく解説
Git ブランチ管理
ほぼすべてのバージョン管理システムは、何らかの形式でブランチをサポートしています。ブランチを使用すると、開発のメインラインから分岐して、メインラインに影響を与えることなく作業を続けることができます。
Git のブランチ モデルを「ニルヴァーナ機能」と呼ぶ人もいますが、まさにそれがあるからこそ、Git をバージョン管理システム ファミリから区別しています。
ブランチの作成コマンド:
git ブランチ (ブランチ名)
ブランチの切り替えコマンド:
git checkout (ブランチ名)
ブランチを切り替えると、Git はブランチの最後のコミット スナップショットを使用します。作業ディレクトリの内容を保存するため、複数のブランチに複数のディレクトリは必要ありません。
ブランチをマージするコマンド:
git merge
同じブランチに複数回マージすることも、マージしたブランチをマージ後に直接削除することもできます。
Git ブランチ管理
ブランチのリスト
ブランチをリストする基本コマンド:
git ブランチ
パラメータを指定しないと、git ブランチはローカル ブランチをリストします。
$ git ブランチ
* master
この例が意味するのは、「master」というブランチがあり、このブランチが現在のブランチであるということです。
git init を実行すると、Git はデフォルトで「マスター」ブランチを作成します。
手動でブランチを作成してそれに切り替える場合。 git Branch (ブランチ名) を実行するだけです。
$ git branch testing $ git branch * master testing
これで、新しいブランチのテストがあることがわかります。
この方法で最後のコミット更新後に新しいブランチを作成すると、後で更新コミットがあった場合、「テスト」ブランチに切り替えて、Git
作業ディレクトリは、ブランチを作成したときの状態に復元されます
次に、ブランチを切り替える方法を説明します。 git checkout (ブランチ) を使用して、変更したいブランチに切り替えます。
$ ls README $ echo 'w3cschool.cc' > test.txt $ git add . $ git commit -m 'add test.txt' [master 048598f] add test.txt 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 hello.php create mode 100644 test.txt $ ls README test.txt $ git checkout testing Switched to branch 'testing' $ ls README hello.php
「testing」ブランチに切り替えると、追加した新しいファイル test.txt が削除されました。
最初に削除されたファイル hello.php が再び表示されました。 「master」ブランチに戻すと、それらは再び表示されました。
$ git checkout master Switched to branch 'master' $ ls README test.txt
git checkout -b (branchname) コマンドを使用して新しいブランチを作成し、すぐにブランチに切り替えてブランチ内で操作することもできます。
$ git checkout -b newtest Switched to a new branch 'newtest' $ git rm test2.txt rm 'test2.txt' $ ls README test.txt $ git commit -am 'removed test2.txt' [newtest 556f0a0] removed test2.txt 1 file changed, 1 deletion(-) delete mode 100644 test2.txt $ git checkout master Switched to branch 'master' $ ls README test.txt test2.txt
ご覧のとおり、ブランチを作成し、そのブランチのコンテキストでいくつかのファイルを削除してから、master ブランチに戻し、それらのファイルが戻ってきました。
ブランチを使用して作業を分離すると、さまざまなコンテキストで作業を行ったり、前後に切り替えたりできるようになります。
ブランチを削除する
ブランチを削除するコマンド:
git Branch -d (ブランチ名)
たとえば、「testing」ブランチを削除したいとします:
$ git branch * master testing $ git branch -d testing Deleted branch testing (was 85fc7e7). $ git branch * master
ブランチマージ
On CEブランチにスタンドアロン コンテンツがある場合、最終的にはそれを master ブランチにマージし直す必要があります。 次のコマンドを使用して、任意のブランチを現在のブランチにマージできます:
git merge
$ git branch * master newtest $ ls README test.txt test2.txt $ git merge newtest Updating 2e082b7..556f0a0 Fast-forward test2.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 test2.txt $ ls README test.txt
上の例では、newtest ブランチを main ブランチにマージし、test2.txt ファイルが削除されました。
マージ競合
マージは、ファイルの追加と削除という単純な操作だけではなく、Git は変更もマージします。
$ git branch * master $ cat test.txt w3cschool.cc 首先,我们创建一个叫做"change_site"的分支,切换过去,我们将内容改为 www.w3cschool.cc 。 $ git checkout -b change_site Switched to a new branch 'change_site' $ vim test.txt $ head -1 test.txt www.w3cschool.cc $ git commit -am 'changed the site' [change_site d7e7346] changed the site 1 file changed, 1 insertion(+), 1 deletion(-)
変更したコンテンツを「change_site」ブランチに送信します。 ここで、「マスター」に戻すと、 ブランチでは、コンテンツが変更前の内容に復元されていることがわかります。test.txt ファイルを再度変更します。
$ git checkout master Switched to branch 'master' $ head -1 test.txt w3cschool.cc $ vim test.txt $ cat test.txt w3cschool.cc 新增加一行 $ git diff diff --git a/test.txt b/test.txt index 704cce7..f84c2a4 100644 --- a/test.txt +++ b/test.txt @@ -1 +1,2 @@ w3cschool.cc +新增加一行 $ git commit -am '新增加一行' [master 14b4dca] 新增加一行 1 file changed, 1 insertion(+)
これで、これらの変更が「master」ブランチに記録されました。次に、「change_site」ブランチをマージします。
$ git merge change_site Auto-merging test.txt CONFLICT (content): Merge conflict in test.txt Automatic merge failed; fix conflicts and then commit the result. $ cat test.txt <<<<<<< HEAD w3cschool.cc 新增加一行 ======= www.w3cschool.cc >>>>>>> change_site
前のブランチを「master」ブランチにマージしましたが、マージ競合が発生しました。次に、それを手動で変更する必要があります。
$ vim test.txt $ cat test.txt www.w3cschool.cc 新增加一行 $ git diff diff --cc test.txt index f84c2a4,bccb7c2..0000000 --- a/test.txt +++ b/test.txt @@@ -1,2 -1,1 +1,2 @@@ - w3cschool.cc + www.w3cschool.cc +新增加一行
Git では、git add を使用して、ファイルの競合が解決されたことを Git に伝えることができます
$ git status -s UU test.txt $ git add test.txt $ git status -s M test.txt $ git commit [master 88afe0e] Merge branch 'change_site'
これで、マージ内の競合が正常に解決され、結果が送信されました。
上記は Git チュートリアルでのブランチ管理の詳細な説明です。その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











gitを介してローカルにプロジェクトをダウンロードするには、次の手順に従ってください。gitをインストールします。プロジェクトディレクトリに移動します。次のコマンドを使用してリモートリポジトリのクローニング:git clone https://github.com/username/repository-name.git

GITコードを更新する手順:コードをチェックしてください:gitクローンhttps://github.com/username/repo.git最新の変更を取得:gitフェッチマージの変更:gitマージオリジン/マスタープッシュ変更(オプション):gitプッシュオリジンマスター

gitコードマージプロセス:競合を避けるために最新の変更を引き出します。マージするブランチに切り替えます。マージを開始し、ブランチをマージするように指定します。競合のマージ(ある場合)を解決します。ステージングとコミットマージ、コミットメッセージを提供します。

GITコミットは、プロジェクトの現在の状態のスナップショットを保存するために、ファイルの変更をGITリポジトリに記録するコマンドです。使用方法は次のとおりです。一時的なストレージエリアに変更を追加する簡潔で有益な提出メッセージを書き込み、送信メッセージを保存して終了して送信を完了します。

解決:gitのダウンロード速度が遅い場合、次の手順を実行できます。ネットワーク接続を確認し、接続方法を切り替えてみてください。 GIT構成の最適化:ポストバッファーサイズ(Git Config -Global HTTP.Postbuffer 524288000)を増やし、低速制限(GIT Config -Global HTTP.LowsPeedLimit 1000)を減らします。 Gitプロキシ(Git-ProxyやGit-LFS-Proxyなど)を使用します。別のGitクライアント(SourcetreeやGithubデスクトップなど)を使用してみてください。防火を確認してください

gitリポジトリを削除するには、次の手順に従ってください。削除するリポジトリを確認します。リポジトリのローカル削除:RM -RFコマンドを使用して、フォルダーを削除します。倉庫をリモートで削除する:倉庫の設定に移動し、「倉庫の削除」オプションを見つけて、操作を確認します。

ローカルGitコードを更新する方法は? Git Fetchを使用して、リモートリポジトリから最新の変更を引き出します。 Git Merge Origin/&lt;リモートブランチ名&gt;を使用して、地元のブランチへのリモート変更をマージします。合併から生じる競合を解決します。 Git Commit -M "Merge Branch&lt; Remote Branch Name&GT;"を使用してください。マージの変更を送信し、更新を適用します。

eコマースのウェブサイトを開発するとき、私は困難な問題に遭遇しました:大量の製品データで効率的な検索機能を達成する方法は?従来のデータベース検索は非効率的であり、ユーザーエクスペリエンスが低いです。いくつかの調査の後、私は検索エンジンタイプセンスを発見し、公式のPHPクライアントタイプセンス/タイプセンス-PHPを通じてこの問題を解決し、検索パフォーマンスを大幅に改善しました。
