1. ホーム
  2. git

Tracking Referenceとは?

2023-08-21 01:05:13

質問

Git Extensions を使って新しいブランチをリモート・リポジトリにプッシュすると、次のようなアラートが表示されます。

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

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

どのように解決するのですか?

基本的な考え方は、純粋にローカルな参照(ブランチやタグなど)と、他のレポで何が起こっているかを追うリモート追跡参照があるということです。 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 という名前のリモートブランチを追跡し、ローカルブランチの todo への変更に伴って更新されない remotes/origin/todo .