⚙️
【Git&Github】トラッキングブランチ(追跡ブランチ)とは
トラッキングブランチ(追跡ブランチ)とは
トラッキングブランチの特徴
- ブランチ名は、ローカルリポジトリの
origin/main
というブランチで管理される。 -
git fetch
コマンドを実行すると自動的に更新される。 - 読み取り専用であり、直接変更することはできない。
- ローカルブランチはトラッキングブランチを「追跡」するように設定できる。
トラッキングブランチの設定
1.新しいローカルブランチを作成する
featureブランチを作成
git checkout -b feature
git push -u
コマンドを実行する
2.ファイルを編集後git push -u origin feature
トラッキングブランチの確認方法
ローカルブランチとその追跡しているリモートブランチの関係が表示される
git branch -vv
出力結果
$ git branch -vv
develop 9a5862e [origin/develop] Commit message here
# developはorigin/developをトラッキング
* feature 5a7dffc [origin/feature] Commit message here
# featureはorigin/featureをトラッキング
main a1b2c3d [origin/main] Commit message here
# mainはorigin/mainをトラッキング
ブランチの確認コマンド
ローカルとリモートのリポジトリ全てのブランチを表示する方法
git branch -a
出力結果(ローカルリポジトリに3つ、リモートリポジトリに2つブランチが作成されている)
$ git branch -a
develop
* feature
main
remotes/origin/feature
remotes/origin/main
リモートブランチのみ表示する方法
git branch -r
出力結果(リモートリポジトリのブランチ2つのみを表示)
$ git branch -r
origin/feature
origin/main
ahead
とbehind
について
(例)aheadとbehindについて
(出力結果)git branch -vvコマンドを実行し、トラッキングブランチの状況を確認する
$ git branch -vv
develop 9a5862e [Start] first commit
* feature ca2a97f [origin/feature] [Update] index.htmlの修正
main 77981e5 [origin/main: ahead 1, behind 3] [Update] index.html
上記出力結果の3行目を抜粋
main 77981e5 [origin/main: ahead 1, behind 3] [Update] index.htmlの修正
- ローカルの
main
ブランチはorigin/main
というリモートブランチをトラッキングしている。 -
main
ブランチは77981e5というコミット(メッセージは[Update] index.htmlの修正)がされている。 -
ahead 1
は、ローカルのmain
ブランチがリモートのorigin/main
ブランチより1つ新しいコミットがあることを示している。 -
behind 3
は、リモートのorigin/main
ブランチがローカルのmain
ブランチより3つ新しいコミットがあることを示しています。
➡つまり、リモートのorigin/main
ブランチが一番最新のコミットが反映されている状況。
エラーが表示されないためのポイント
フェッチ(fetch)を定期的に行う
ブランチを残している場合git fetch
を実行し、トラッキングブランチを最新の状態に保つ。
現在使用しているブランチやブランチの情報を確認
git branch -vv
定期的にfetchを実行する
git fetch
プルリクエストが完了したら不要なブランチ削除する
不要なブランチを残しているとコンフリクトの可能性があるため、不要なブランチは削除する。
リモートで削除されたブランチがローカルのトラッキングブランチからも削除される
git fetch -p
その他のブランチ削除コマンド
git branch -d <branch-name> # ローカルブランチの削除
git push origin --delete <branch-name> # リモートブランチの削除
Discussion