web-dev-qa-db-ja.com

追跡参照とは何ですか?

Git Extensions経由で新しいリポジトリをリモートリポジトリにプッシュすると、次のようなアラートが表示されます

The branch {branch name} does not have a tracking reference. Do
you want to add a tracking reference for {branch name}?

追跡参照とは何ですか? Googleでトラッキングリファレンスについて言及しているだけで、実際の定義は見つかりませんでした。

60
Simon Tewsi

基本的な考え方は、純粋にローカルな参照(例:ブランチ、タグ)があり、次にリモートトラッキング参照があり、それが他のリポジトリで行われることに従うということです。 Gitは分散化されているため、他のブランチについて知らなくても、リモートで使用されているブランチと同じブランチの名前を選択して、まったく異なる作業を行うことができます。 Gitではこれを行うことができますが、ローカル参照をリモート参照にリンクする方法も提供します。

たとえば、次のことを考慮してください。

% git branch -a
* master
  remotes/Origin/HEAD -> Origin/master
  remotes/Origin/maint
  remotes/Origin/master
  remotes/Origin/next
  remotes/Origin/pu
  remotes/Origin/todo

Originおよびnextと呼ばれるtodoにブランチがあります。

% git checkout -t remotes/Origin/next
Branch next set up to track remote branch next from Origin.
Switched to a new branch 'next'
% git branch todo    

これで、同じ名前のリモートブランチを追跡するローカルブランチnextと、remotes/Origin/todoへの変更で更新されないローカルブランチtodoができました。

27
Eric Walker

Nick Quarantoの優れたブログgit readyには リモート追跡ブランチ

リモート追跡ブランチには、いくつかの異なる目的があります。

  • これらは、リモートで作業しているものと比較して、ローカルで作業しているものをリンクするために使用されます。

  • Git pullまたはgit fetchを使用すると、変更を取得するリモートブランチが自動的に認識されます。

  • さらに良いことに、gitステータスは、ブランチのリモートバージョンの前にコミットがいくつあるかを認識します。

5
Simon Tewsi

はい、おそらく追加します。コンソールでこれを行います:git branch --set-upstream-to Origin/master

2
whatsupanna