誰かがgitに適用される「追跡ブランチ」を説明できますか?
git-scm.com の定義は次のとおりです。
Gitの「追跡ブランチ」は、リモートブランチに接続されているローカルブランチです。そのブランチをプッシュおよびプルすると、接続先のリモートブランチに自動的にプッシュおよびプルされます。
常に同じ上流ブランチから新しいブランチにプルする場合、および「git pull」を明示的に使用したくない場合に使用します。
残念ながら、gitが新しく、SVNから来ているため、この定義はまったく意味がありません。
私は「 Gitのプラグマティックガイド 」を読んでいますが、トラッキングブランチは良いことであり、最初のリモートを作成した後(Origin、この場合)、マスターブランチをトラッキングブランチとして設定する必要がありますが、残念ながら、トラッキングブランチが良い理由またはmasterブランチをOriginリポジトリの追跡ブランチに設定することで得られるメリット。
誰かが私に英語を教えてくれますか?
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
にプッシュおよびプルします。
追跡ブランチは、リモートブランチと直接関係があるローカルブランチです。
ではない正確に。 SO質問「 git-fetch
を理解するのに苦労している」には以下が含まれます。
ローカル追跡ブランチという概念はなく、リモート追跡ブランチのみです。
したがって、Origin/master
は、master
リポジトリ内のOrigin
のリモート追跡ブランチです。
しかし、実際には、次の間に upstream branch relationship を確立すると、
master
のようなローカルブランチOrigin/master
のようなリモート追跡ブランチ次に、master
をlocal tracking branchと見なすことができます:remote tracking branchOrigin/master
を追跡し、これが/のmasterブランチを追跡します upstream repoOrigin
。
これは、追跡ブランチを追加して新しいブランチにプルできるようにする方法です。
git branch --set-upstream-to Origin/Development new-branch