ホームページ 開発ツール Git バージョン管理ツール Git - ブランチ管理

バージョン管理ツール Git - ブランチ管理

Jun 22, 2020 am 09:56 AM
git

Branch は Git のキラー アプリケーションです。他のバージョン管理ツールとは異なり、git はブランチの作成と切り替えが非常に効率的です。

ブランチの概要

ブランチとは何ですか?私たちがよく知っているシナリオから始めましょう。発売された製品には新しい機能を追加する必要があります。この時点で、元のブランチで開発を続けると、すでに起動されているアプリケーションなので、起動する前にテストする必要があるため、非常に不便になります。一般に、私たちのアプローチは、新しいブランチを作成し、この新しいブランチ上で新しい機能を開発し、テスト後にそれらをメイン ブランチにマージすることです。

#ブランチの作成と切り替え

私のリポジトリ ブランチの現在の状況は次のとおりです:

バージョン管理ツール Git - ブランチ管理

ブランチの作成

次に、新しいブランチ dev を作成します。ブランチを作成し、ブランチを表示するコマンドは次のとおりです。

git branch 分支名
git branch

# git branch dev
# git branch
  dev
* master
ログイン後にコピー

ブランチの切り替え

ブランチは正常に確立されました。新しいブランチに切り替えましょう。ブランチを切り替えるコマンドは次のとおりです git checkout ブランチ名

# git checkout dev
Switched to branch 'dev'
ログイン後にコピー

バージョン管理ツール Git - ブランチ管理

次に、新しいブランチにいくつかの変更を加えてコミットします。次に、「Go」を master ブランチに切り替え、いくつかの変更を加えて送信します。次に、ブランチのステータスを確認します。

git vim config.php # 修改config.php文件
git add . && git commit -m 'add config.php'

git checkout master # 切换到主分支
git vim config.php
git add . && git commit -m 'change config.php'
ログイン後にコピー

バージョン管理ツール Git - ブランチ管理

$ git log --oneline --decorate --graph --all
* ca4589c (HEAD -> master) add config file
| * 43a5a8f (dev) add config.php
|/
* 19e3186 add index.php
* 9cc82f9 first commit
ログイン後にコピー

ブランチの作成と切り替えを行う 1 つのコマンド

git checkout -b 新分支名
ログイン後にコピー

# #Branchマージまず、非常に一般的なシナリオを紹介します。

    システムがオンラインになりました
  • システムは新しい機能で更新する必要があるため、新しいブランチ (dev) を作成し、このブランチで作業します。
  • この度、システムに突然問題が発生し、緊急の調査と処理が必要となりました。
  • # したがって、この時点では、まずオンライン バージョン (マスター) に切り替えてから、新しいブランチ (fixbug) を作成し、新しいブランチでエラーを修正する必要があります
  • テストが完了したら、オンライン ブランチに切り替えて、fixbug ブランチをマージし、変更をオンライン ブランチにプッシュします。
  • 最後に、dev ブランチに切り替えて作業を続けることができます。
  • 現在のリポジトリのステータスは次のとおりです:

次に、新しいブランチを作成し、新しいブランチを追加する必要があります。新しいブランチ関数のもの。 バージョン管理ツール Git - ブランチ管理

git checkout -b dev
ログイン後にコピー

次に、新しいブランチにいくつかの変更を加えます。

この時点で、オンライン上に重大なバグが発生しており、緊急に対処する必要があることが判明しました。まず、master ブランチに切り替える必要があります。しかし、切り替え中にエラーが発生しました バージョン管理ツール Git - ブランチ管理

$ git checkout master
error: Your local changes to the following files would be overwritten by checkout:
        login.php
Please commit your changes or stash them before you switch branches.
Aborting
ログイン後にコピー

上記のエラーがよく発生します。これは、

ブランチをマージするとき、ワークスペースとステージング領域が「クリーン」である必要があるためです

。上記の要件を達成するには 2 つの方法があります

変更の送信
  • 一時ストレージ
  • ここにあります ステージング手法を使用してデモします
  • $ git stash
    $ git checkout master
    Switched to branch 'master'
    ログイン後にコピー

    当你切换分支的时候,Git 会重置你的工作目录,使其看起来像回到了你在那个分支上最后一次提交的样子。

    现在,我们新建fixbug分支,在这个分支上修复bug。

    $ git checkout -b fixbug
    ログイン後にコピー

    合并分支

    修复完成且测试通过时,就可以把它合并到master上了。合并使用git merge 分支名

    $ git checkout master Switched to branch 'master' 
    $ git merge fixbug
    ログイン後にコピー

    删除分支

    这个时候,fixbug功能已经完成了,可以将它给删除掉了。

    $ git branch -d fixbug 
    Deleted branch fixbug (was cca73bb).
    ログイン後にコピー

    现在,我们可以继续在dev分支上工作了。我们需要把之前暂存的内容取出来。

    $ git checkout dev
    
    $ git stash pop
    On branch dev
    Changes not staged for commit:
      (use "git add <file>..." to update what will be committed)
      (use "git checkout -- <file>..." to discard changes in working directory)
    
            modified:   login.php
    
    no changes added to commit (use "git add" and/or "git commit -a")
    Dropped refs/stash@{0} (2f8476defbaa813e31f3e1b081f5b88416b2ff50)
    ログイン後にコピー

    新功能完成后,提交到版本库。

    バージョン管理ツール Git - ブランチ管理

    冲突解决

    现在我们新的功能完成了,那么就可以把它合并到master分支上了。现在我们来演示合并时遇到冲突时,如何去解决。

    $ git checkout master
    Switched to branch &#39;master&#39;
    
    $ git merge dev
    Auto-merging index.php
    CONFLICT (content): Merge conflict in index.php
    Automatic merge failed; fix conflicts and then commit the result.
    ログイン後にコピー

    提示我index.php合并的时候有冲突,我们来看看该文件

    $ cat index.php
    <?php
    
    <<<<<<< HEAD
    echo &#39;hello world&#39;;
    =======
    echo &#39;version 1.1 finished&#39;;
    >>>>>>> dev
    ログイン後にコピー
    <br/>
    ログイン後にコピー
    $ cat index.php 
    <?php 
    echo &#39;version 1.1 finished&#39;;
    ログイン後にコピー

    然后再add并提交,最后在提交

    $ git commit -m &#39;merge dev&#39;
    ログイン後にコピー

    这个时候就合并成功了,现在就去删除dev分支吧。

    $ git branch -d dev
    ログイン後にコピー

    以上がバージョン管理ツール Git - ブランチ管理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

GITでリポジトリを削除する方法 GITでリポジトリを削除する方法 Apr 17, 2025 pm 04:03 PM

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

gitコミットの使用方法 gitコミットの使用方法 Apr 17, 2025 pm 03:57 PM

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

gitの提出後に戻る方法 gitの提出後に戻る方法 Apr 17, 2025 pm 01:06 PM

Git Commitをフォールバックするには、Git Reset - Hard Head〜nコマンドを使用できます。ここで、nはコミット数の数を表します。詳細な手順には、次のものがあります。 - ハードオプションを使用して、フォールバックを強制します。指定されたコミットに戻るためにコマンドを実行します。

Gitサーバーのパブリックネットワークに接続する方法 Gitサーバーのパブリックネットワークに接続する方法 Apr 17, 2025 pm 02:27 PM

GITサーバーをパブリックネットワークに接続するには、5つのステップが含まれます。1。パブリックIPアドレスのセットアップ。 2。ファイアウォールポート(22、9418、80/443)を開きます。 3。SSHアクセスを構成します(キーペアを生成し、ユーザーを作成します)。 4。http/httpsアクセスを構成します(サーバーをインストールし、許可を構成); 5.接続をテストします(SSHクライアントまたはGITコマンドを使用)。

GitでSSHを検出する方法 GitでSSHを検出する方法 Apr 17, 2025 pm 02:33 PM

GITを介してSSHを検出するには、次の手順を実行する必要があります。SSHキーペアを生成します。 Gitサーバーに公開キーを追加します。 sshを使用するようにgitを構成します。 SSH接続をテストします。実際の条件に応じて可能な問題を解決します。

Gitアカウントにパブリックキーを追加する方法 Gitアカウントにパブリックキーを追加する方法 Apr 17, 2025 pm 02:42 PM

Gitアカウントに公開キーを追加する方法は?ステップ:SSHキーペアを生成します。公開キーをコピーします。 gitlabまたはgithubに公開キーを追加します。 SSH接続をテストします。

GITコードの競合に対処する方法 GITコードの競合に対処する方法 Apr 17, 2025 pm 02:51 PM

コード競合とは、複数の開発者が同じコードを変更し、GITが変更を自動的に選択せずにマージすると発生する競合を指します。解決手順には、競合するファイルを開き、競合するコードを見つけます。コードを手動でマージし、競合マーカーに保持する変更をコピーします。競合マークを削除します。変更を保存して送信します。

Gitで空のフォルダーを送信する方法 Gitで空のフォルダーを送信する方法 Apr 17, 2025 pm 04:09 PM

GITで空のフォルダーを送信するには、次の手順に従ってください。1。空のフォルダーを作成します。 2.フォルダーをステージング領域に追加します。 3.変更を送信して、コミットメッセージを入力します。 4。(オプション)変更をリモートリポジトリに押します。注:空のフォルダーの名前は開始できません。フォルダーが既に存在する場合は、git addを使用して追加する必要があります。

See all articles