ジャンプ開始git:gitで分岐します
gitブランチ:効率的なコラボレーションのためのツール
この記事は、SitePoint Premiumメンバーから無料で利用できる本「Jump Start Git」から抜粋されています。物理的な本は世界中の主要な書店で入手できます。また、ここで注文することもできます。あなたがそれを好み、それを恩恵を受けることを願っています!
第1章では、プロジェクトで新しいことを試すことへの最初の恐怖について話しました。野心的な機能を試してみて、以前に機能していた部分を破ったらどうでしょうか。 Gitの分岐機能は、この問題を完全に解決します。
キーポイントの概要概要
- Git Branchを使用すると、元のプロジェクトに影響を与えることなく、プロジェクトのコピーを実験することができます。実験が成功した場合、実験要素をメインブランチに簡単に融合できます。
- ブランチにより、互いに干渉することなく複数のタスクを同時に処理できます。これは、別の機能を処理する必要がある間にある機能の承認を待つときに非常に便利です。分岐は、さまざまなアイデアを分離することで、コードを理解しやすくすることもできます。 コマンドを使用して
- gitでブランチを作成します
git branch [分支名称]
。このブランチに切り替えて、git checkout [分支名称]
を使用します。ブランチの削除はgit branch -D [分支名称]
を使用しますが、必要でない限りブランチを削除しないことをお勧めします。
GITの枝のマージは簡単なプロセスです。必要なブランチがアクティブであることを確認した後、コマンド - を使用します。ただし、これにより、プロジェクト履歴にループを作成できます。これにより、大規模なチームでナビゲートするのは難しい場合があります。次の章では、ループを作成しないマージメソッドについて説明します。
git merge [分支名称]
ブランチとは何ですか?
プロジェクトに新しいブランチを作成することは、基本的にプロジェクトのコピーを作成することを意味します。このコピーを使用して、元のプロジェクトに影響を与えることなく実験できます。したがって、実験が失敗した場合は、それをあきらめて、元のプロジェクトであるメインブランチに戻ることができます。しかし、実験が成功した場合、Gitは実験要素をメインブランチに簡単に融合できます。そして、後で、気が変わった場合、マージの前にプロジェクトの状態に簡単に復元できます。
したがって、Gitの分岐は独立した開発パスです。他のブランチに影響を与えることなく、支店で新しいコミットを作成できます。ブランチの使いやすさは、Gitの最高の機能の1つです。 (他のバージョン制御オプション(CVSなど)にもブランチオプションがありますが、CVSでブランチをマージする経験は非常に退屈です。他のバージョン制御システムでブランチを使用した経験がある場合、GITでのブランチの使用は完全に異なることをご安心ください。 )
gitでは、デフォルトでメインブランチにいます。 「マスター」という名前は、それが決して優れているという意味ではありません。これは単なる従来のことわざです。
注:ブランチ契約さまざまなブランチをGitのベースブランチとして自由に使用できますが、人々は通常、メインブランチで特定のプロジェクトの最新コードを見つけることを期待しています。
コミットに戻る能力のために、ブランチは必要ないと主張するかもしれません。しかし、あなたがした仕事の一部ではない新しい機能を開発しながら、あなたの仕事を監督者に見せる必要があると想像してください。ブランチはさまざまなアイデアを分離するために使用されるため、リポジトリ内のコードを理解しやすくします。さらに、ブランチは、マスターまたはマスターブランチでのみ重要なコミットを保持することができます。
ブランチの別の使用は、互いに干渉することなく複数のものを同時に処理できることです。レビューのために機能1を提出したと仮定しますが、スーパーバイザーがそれをレビューするのに時間がかかるとします。同時に、関数2を処理する必要があります。この場合、ブランチは役に立ちます。新しいブランチで新しいアイデアに取り組んでいる場合は、いつでも以前のブランチに戻り、リポジトリを以前の状態に復元することができます。これには、アイデアに関連するコードが含まれていません。
ここで、Gitでブランチの使用を開始しましょう。使用しているブランチリストと現在のブランチを表示するには、次のコマンドを実行します。
<code>git branch</code>
を追加するだけです
<code>git branch -a</code>
上記のように、赤い枝は、それらがリモートリポジトリにあることを示しています。この例では、Origin Remote Repositoryに存在するさまざまなブランチを見ることができます。
gitにブランチを作成する方法はいくつかあります。新しいブランチを作成して現在のブランチに保持するには、次のコマンドを実行します。
ここで、
は作成されたブランチの名前です。ただし、<code>git branch test_branch</code>
test_branch
<code>git branch</code>
<code>git checkout test_branch</code>
上記の2つのコマンドを組み合わせて、チェックアウトコマンドの後に-bを追加して、1つのコマンドで新しいブランチを作成してチェックアウトすることもできます。
<code>git checkout -b new_test_branch</code>
)を作成したい場合(例:)、次のコマンドを実行できます。
cafb55d
old_commit_branch
<code>git checkout -b old_commit_branch cafb55d</code>
renamed_branch
<code>git branch</code>
注:必要でない限りブランチを削除しないでください
実際には、ブランチを保持するための欠点はないため、リポジトリ内のブランチの数が大きすぎて管理できない場合を除き、削除しないことをお勧めします。
上記で使用されているオプションは、ブランチがリモートブランチと同期されていない場合でも、ブランチを削除します。これは、現在のブランチにプッシュされていないコミットがある場合、-D
は警告なしにブランチを削除することを意味します。データを紛失しないようにするには、-D
の代替として-d
を使用できます。 -D
リモートブランチと同期されている場合にのみ、ブランチを削除します。私たちの枝はまだ同期していないので、以下に示すように、-d
を使用した場合に何が起こるか見てみましょう。
-d
ご覧のとおり、Gitはデータがブランチと統合されていないため、操作を中止します。
分岐の基本を試してみる機会があるので、枝がどのように機能するかを議論し、重要な概念を紹介しましょう:ヘッド。
上記のように、ブランチは、異なるコミット間の、またはコミットの経路を通る間の単なるリンクです。ブランチを使用する場合、ブランチのヘッドはブランチでの最新のコミットを指していることに注意する必要があります。次の章で何度か頭に言及します。 Gitでは、ヘッドはブランチでの最新のコミットを指します。言い換えれば、それはブランチの上部を指します。ブランチは、本質的に、親のコミット、祖父母のコミットなどを持つコミットへのポインターです。このコミットチェーンは、上記のパスを形成します。それで、枝と頭をリンクする方法は?さて、頭の上部と現在の分岐は同じコミットを指します。このアイデアを説明するためにチャートを見てみましょう:
上記のように、
は最初はアクティブなブランチであり、ヘッドポイントはCをコミットします。コミットAは、親がコミットしない基本コミットであるため、
でのコミットはE→D→B→Aです。ヘッドポイントアクティブブランチの最新のコミットbranch_A
、つまり、Cをコミットします。コミットを追加すると、アクティブブランチに追加されます。コミットした後、branch_A
はFを指し、ブランチはF→C→B→Aに続きますが、branch_B
は同じままです。ヘッドは今ではfをコミットすることを指します。繰り返しますが、別のコミットを追加すると、図に変更が示されます。 branch_A
branch_A
branch_B
Advanced Branch:マージブランチ
前述のように、GITの最大の利点の1つは、ブランチをマージするのが特に簡単であることです。それでは、それがどのように行われているか見てみましょう。
2つの新しいブランチを作成します(
とnew_feature
) - 仮想コミットを追加します。各ブランチの履歴をチェックすると、another_feature
ブランチが次のように1つのコミットメントをリードしていることがわかります。
another_feature
この状況は、下の図に示すことができます。各円はコミットを表し、ブランチ名は頭を指します(枝の上部)。
をメインブランチとマージするには、次のコマンドを実行します(最初にメインブランチがアクティブであることを確認してください):new_feature
<code>git branch</code>
とanother_feature
とマージするには、次のコマンドを実行するだけです(new_feature
ブランチがアクティブであることを確認してください):new_feature
<code>git branch -a</code>
重要なヒント:サイクルに注意を払ってください
上記の画像は、このマージが、ワークフローがそれぞれ分岐して収束するプロジェクト履歴に2つのコミットにわたってループを作成することを示しています。このようなループは、単独でまたは小さなチームで作業するときに問題ではないかもしれません。ただし、より大きなチームでは、メインブランチから逸脱して以来、多くのコミットがあるかもしれませんが、この大きなループにより、歴史をナビゲートして変化を理解することが困難になります。第6章でループを作成せずに、Rebaseコマンドを使用してブランチをマージする方法を検討します。
ブランチと比較してanother_feature
ブランチに新しいコミットは追加されません。 GITの競合は、同じファイルの同じ部分が両方のブランチの非公開コミットで変更された場合に発生します。 GITは競合を投げて、データを失わないようにします。 new_feature
ブランチをマージする別の方法は、マージコマンドの後に
を追加することにより、非高速なフォワードマージです。このようにして、別のブランチからの変更を加えて、基礎となるブランチに新しいコミットが作成されます。また、送信メッセージを指定する必要があります:--no-ff
<code>git branch</code>
)は早送りのマージであり、後者はマージのコミットとの非高速なマージです。 new_feature
結論
何を学びましたか? この章では、枝が何であり、GITでそれらを管理する方法について説明します。ブランチの作成、変更、削除、およびマージを検討しました。
次は何ですか?私は、Gitがチームと協力する開発者にとってどのように良いかについてすでに話しています。これについては、次の章と、分散チームでよく使用される特定のGIT操作とコマンドについて詳しく説明します。
gitブランチに関するFAQgitブランチの主な目的は何ですか?
- gitブランチは、開発者が個別の開発ラインを作成できる強力な機能です。これは、メインプロジェクトから作業を分離できるため、新しい機能や修正を扱うときに特に役立ちます。機能または修正が完了してテストされた後、メインプロジェクトに融合することができます。これにより、メインプロジェクトが安定したままであり、複数の開発者が互いに干渉することなく異なる機能を同時に処理できるようになります。
gitで新しいブランチを作成する方法は?
- Gitで新しいブランチを作成するのは簡単です。 コマンドを使用して、新しいブランチの名前を使用できます。たとえば、 は「new_feature」という新しいブランチを作成します。このブランチに切り替えるには、次のように
<code>git branch</code>
git branch new_feature
git checkout
gitでブランチをマージする方法は? git checkout new_feature
- コマンドを使用してGITの分岐をマージします。マージする前に、マージしたいブランチにいる必要があります。たとえば、「new_feature」という名前のブランチを「マスター」ブランチにマージする場合は、まずを使用してメインブランチに切り替えてから、 コマンドを使用する必要があります。
git merge
git checkout master
gitブランチポインターとは何ですか?それはどのように機能しますか? git merge new_feature
- gitブランチポインターは、指し示すsha1ハッシュのコミットを含むファイルです。新しいブランチを作成すると、Gitは新しいポインターを作成し、新しいコミットを行うたびに移動します。これにより、Gitはプロジェクトの履歴を追跡できます。
- gitでブランチを削除する方法は?
git branch -d
コマンドを使用してGITのブランチを削除し、その後のブランチの名前を使用します。たとえば、git branch -d old_feature
は「old_feature」という名前のブランチを削除します。ただし、ブランチに別のブランチに統合されていないコミットがある場合、Gitはブランチの削除を妨げます。削除を強制するには、-D
オプションを使用できます。- Fast Forwardの合併とGITの三者合併の違いは何ですか?
gitの早送りマージが可能です。新しいコミットを作成する代わりに、Gitは現在のブランチポインターをターゲットブランチまで移動します。一方、線形パスがない場合、三者マージが使用されます。 GITは、2つの親との新しいコミットを作成し、2つのブランチを効果的に接続します。
- gitリポジトリ内のすべてのブランチを表示する方法は?
パラメーターなしで<code>git branch</code>コマンドを使用して、GITリポジトリ内のすべてのブランチを表示できます。これにより、すべてのローカルブランチがリストされます。リモートブランチも表示する場合は、次のように
-a
オプションを使用できます。 <code>git branch -a</code>- gitでブランチの名前を変更する方法は?
コマンドを使用してGitのブランチを変更し、その後古い名前と新しい名前を変更します。たとえば、
git branch -m
は、branch "old_name"に「new_name」に名前を変更します。git branch -m old_name new_name
- gitの分離ヘッドとは何ですか?それを避ける方法は?
- gitで枝をマージするときに競合を解決する方法は?
)を見つけ、どの変更を維持するかを決定することでこれを行うことができます。すべての競合が解決された後、
<<<<<<<
を使用してファイルを追加してgit add
を使用して送信できます。git commit
以上がジャンプ開始git:gitで分岐しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホット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)

ホットトピック











このパイロットプログラム、CNCF(クラウドネイティブコンピューティングファンデーション)、アンペアコンピューティング、Equinix Metal、およびActuatedのコラボレーションであるCNCF GithubプロジェクトのARM64 CI/CDが合理化されます。 このイニシアチブは、セキュリティの懸念とパフォーマンスリムに対処します

このチュートリアルは、AWSサービスを使用してサーバーレスイメージ処理パイプラインを構築することをガイドします。 APIゲートウェイ、Lambda関数、S3バケット、およびDynamoDBと対話するECS Fargateクラスターに展開されたnext.jsフロントエンドを作成します。 th

これらのトップ開発者ニュースレターを使用して、最新のハイテクトレンドについてお知らせください! このキュレーションされたリストは、AI愛好家からベテランのバックエンドやフロントエンド開発者まで、すべての人に何かを提供します。 お気に入りを選択し、Relを検索する時間を節約してください
