git トピック ブランチとは何ですか? 普通の支店と何か違うの?トピックブランチではないブランチはありますか?
4 に答える
トピック ブランチは通常、ローカルで作成する軽量のブランチで、わかりやすい名前が付けられています。これらは、完了するまでに時間がかかることが予想されるバグ修正または機能 (機能ブランチとも呼ばれます) の作業を行う場所です。
別のタイプのブランチは、「リモート ブランチ」または「リモート トラッキング ブランチ」です。このタイプのブランチは、他の誰かの作業の開発に従い、独自のリポジトリに保存されます。このブランチを ( を使用してgit fetch
) 定期的に更新し、他の場所で何が起こっているかを追跡します。他の人の変更に追いつく準備ができたらgit pull
、フェッチとマージの両方を使用します。
また、同じリポジトリ内のファイルの本質的に完全に別のツリーである別の種類のブランチも見ました。たとえば、Git リポジトリ自体には、マスターブランチとはまったく異なるコンテンツを含むmanおよびhtmlという名前のヘッドが含まれています。これらのタイプのブランチが通常何と呼ばれているかわかりません。
これは専門用語ではありません。特定の機能を実装したり、バグを修正したりするために作成されたブランチを参照するだけです。基本的に、「トピック」はブランチを作成する理由です。
https://github.com/dchelimsky/rspec/wiki/Topic-Branchesはこれをよく説明しています:
「トピック」ブランチは、単一の「トピック」(バグ修正、新機能、または実験的なアイデア) に取り組むときに使用する別のブランチです。次の理由から、「マスター」上で直接作業するのではなく、トピック ブランチで作業することをお勧めします。
{... リンクにアクセス ...}
したがって、これらすべての理由から、単一コミットのバグ修正などの単純な貢献であっても、サブミッションの準備にトピック ブランチを使用することをお勧めします。
このサンプルでは、例も示します。実際、これはおそらくほとんどのショップがすでに行っていることだと思いました。私がこれまで関わってきたすべてのアジャイル プロジェクトはそうです。これは的を射ていると感じたので、「専門用語ではありません」に賛成票を投じました。
トピック ブランチではない最も有名で重要なタイプのブランチは、公開されている主要なリポジトリのリリース ブランチのように見えますよね?
それはおそらくあなたにとって正しいことですが、それはあなたとあなたが考えているプロジェクトについてです。Git によって決定されるわけではありません。
ほとんどのバージョン管理システム (特に集中管理システム) は、ブランチを使用する意味を含め、特定のワークフローを規定または強制します。Git (およびある程度ほとんどの分散型 VCS) は、ワークフロー、どのブランチが使用されるか、いつコミットするか、どの異なるリポジトリが使用されるかなどはすべて、ユーザーとユーザー間の合意 (ポリシー) によって選択されると考えています。そのため、Git はこれらを技術的に強制しません。
これが、私が Git を習得するのを難しくした理由の 1 つです。Oliver Steele は、コミット ポリシーについて書いて、ユーザーの視点からこれを説明しました。