web-dev-qa-db-ja.com

git topic branchとは何ですか?

Git topic branchとは何ですか?何らかの点で通常のブランチとは異なりますか?トピックブランチではないブランチはありますか?

126
skiphoppy

トピックブランチは通常、ローカルで作成し、youにとって意味のある名前を持つ軽量ブランチです。これらは、完了するまでに時間がかかることが予想されるバグ修正または機能(機能ブランチとも呼ばれます)の作業を行う場所です。

別のタイプのブランチは、「リモートブランチ」または「リモートトラッキングブランチ」です。このタイプのブランチは、誰かの開発elseの作業に続き、独自のリポジトリに保存されます。このブランチを定期的に更新します(git fetch)他の場所で何が起こっているかを追跡します。他の人の変更に追いつく準備ができたら、git pullフェッチとマージの両方。

また、本質的に同じリポジトリ内の完全に独立したファイルのツリーである別の種類のブランチを見ました。たとえば、 Gitリポジトリ自体 には master ブランチとはまったく異なるコンテンツを含む man および html という名前のヘッドが含まれます。これらのタイプのブランチが通常何と呼ばれているのかわかりません。

104
Greg Hewgill

これは専門用語ではありません。特定の機能を実装したりバグを修正したりするために作成されたブランチを指します。 「トピック」は、本質的にブランチを作成する理由です。

76
mipadi

https://github.com/dchelimsky/rspec/wiki/Topic-Branches はこれをうまく説明しています:

「トピック」ブランチは、単一の「トピック」(バグ修正、新機能、または実験的アイデア)で作業するときに使用する別個のブランチです。 「マスター」の上に直接ではなくトピックブランチで作業することをお勧めします。

{...リンクにアクセス...}

そのため、これらすべての理由から、単一コミットのバグ修正などの単純な貢献でも、投稿の準備にトピックブランチを使用することをお勧めします。

このサンプルでは例を示します。これは実際に私に考えさせられました、これはおそらくほとんどの店がすでにしていることです。私がこれまでに携わったアジャイルプロジェクトはすべて実行します。 「専門用語ではない」と賛成したのは、これが頭に釘を打つと感じるからです。

26
Jeff Ancel

トピックブランチではない最も重要で重要なタイプのブランチは、公開されている主要なリポジトリのリリースブランチのようです。

それはおそらくあなたに適していますが、それはあなたとあなたが考えているプロジェクトについてです。 Gitによって決定されるわけではありません。

ほとんどのバージョン管理システム(特に集中管理されたシステム)は、ブランチを使用する意味があるものを含め、特定のワークフローを規定または実施します。 Git(および大部分の分散VCS)は、ワークフロー、ブランチの使用目的、コミットのタイミング、異なるリポジトリの使用などをすべてユーザーとユーザー間の合意(ポリシー)が選択することを考慮します。したがって、Gitはこれらを技術的に強制しません。

これは、Gitを学習するのを難しくしたことの1つです。 Oliver Steeleは、これをユーザーの観点から説明し、 Commit Policies について書いています。

4
Paul