web-dev-qa-db-ja.com

追跡ブランチとは何ですか?

誰かがgitに適用される「追跡ブランチ」を説明できますか?

git-scm.com の定義は次のとおりです。

Gitの「追跡ブランチ」は、リモートブランチに接続されているローカルブランチです。そのブランチをプッシュおよびプルすると、接続先のリモートブランチに自動的にプッシュおよびプルされます。

常に同じ上流ブランチから新しいブランチにプルする場合、および「git pull」を明示的に使用したくない場合に使用します。

残念ながら、gitが新しく、SVNから来ているため、この定義はまったく意味がありません。

私は「 Gitのプラグマティックガイド 」を読んでいますが、トラッキングブランチは良いことであり、最初のリモートを作成した後(Origin、この場合)、マスターブランチをトラッキングブランチとして設定する必要がありますが、残念ながら、トラッキングブランチが良い理由またはmasterブランチをOriginリポジトリの追跡ブランチに設定することで得られるメリット

誰かが私に英語を教えてくれますか?

134
jerhinesmith

ProGit book には 非常に良い説明 があります:

追跡ブランチ

リモートブランチからローカルブランチをチェックアウトすると、追跡ブランチと呼ばれるものが自動的に作成されます。追跡ブランチは、リモートブランチと直接的な関係を持つローカルブランチです。追跡ブランチ上でgit Pushと入力すると、Gitはプッシュするサーバーとブランチを自動的に認識します。また、これらのブランチの1つでgit pullを実行すると、すべてのリモート参照がフェッチされ、対応するリモートブランチに自動的にマージされます。

リポジトリを複製すると、通常、Origin/masterを追跡するmasterブランチが自動的に作成されます。 git Pushとgit pullが他の引数なしでそのまま動作するのはそのためです。ただし、必要に応じて他のトラッキングブランチを設定できます。Originのブランチをトラッキングせず、マスターブランチをトラッキングしないものを設定できます。単純な例は、git checkout -b [branch] [remotename]/[branch]を実行した先ほど見た例です。 Gitバージョン1.6.2以降を使用している場合は、--track短縮形も使用できます。

$ git checkout --track Origin/serverfix
Branch serverfix set up to track remote branch refs/remotes/Origin/serverfix.
Switched to a new branch "serverfix"

リモートブランチとは異なる名前でローカルブランチをセットアップするには、異なるローカルブランチ名で最初のバージョンを簡単に使用できます。

$ git checkout -b sf Origin/serverfix
Branch sf set up to track remote branch refs/remotes/Origin/serverfix.
Switched to a new branch "sf"

これで、ローカルブランチsfが自動的にOrigin/serverfixにプッシュおよびプルします。

100
Assaf Lavie

Pro Gitブックmentions

追跡ブランチは、リモートブランチと直接関係があるローカルブランチです。

ではない正確に。 SO質問「 git-fetch を理解するのに苦労している」には以下が含まれます。

ローカル追跡ブランチという概念はなく、リモート追跡ブランチのみです。
したがって、Origin/masterは、masterリポジトリ内のOriginのリモート追跡ブランチです。

しかし、実際には、次の間に upstream branch relationship を確立すると、

  • masterのようなローカルブランチ
  • Origin/masterのようなリモート追跡ブランチ

次に、masterlocal tracking branchと見なすことができます:remote tracking branchOrigin/masterを追跡し、これが/のmasterブランチを追跡します upstream repoOrigin

alt text

34
VonC

以下は、GIT追跡ブランチに関する個人的な学習メモです。将来の訪問者にとって役立つことを願っています。

enter image description hereenter image description hereenter image description hereenter image description hereenter image description hereenter image description here


ブランチの追跡と「git fetch」:

enter image description hereenter image description hereenter image description here

25
hagrawal

これは、追跡ブランチを追加して新しいブランチにプルできるようにする方法です。

git branch --set-upstream-to Origin/Development new-branch
4
agrublev