xyk blog

最近は iOS 開発の記事が多めです。

git でリモート追跡ブランチを解除する

検証環境:
git version 2.23.0

git で特定のブランチが既に何かのリモートブランチを追跡している状態で、その追跡をやめる方法、そして再度追跡させる方法についてメモ。

リモートブランチの追跡を解除する

以下コマンドでリモートブランチの追跡が解除されて、ローカルのみのブランチとなる。

$ git branch --unset-upstream <branch>

例:

# 解除前の状態確認
$ git branch -vv
* feature/hoge fefad7b5 [origin/feature/hoge] wip

# 解除
$ git branch --unset-upstream feature/hoge

# 解除後の状態確認
$ git branch -vv
* feature/hoge fefad7b5 wip

リモートブランチの追跡を開始する

以下コマンドでローカルブランチをアップストリームブランチにリンクさせてリモートブランチの追跡が開始される。

$ git branch --set-upstream-to <upstream>

# または
$ git branch -u <upstream>

例:

# 追跡追加
$ git branch --set-upstream-to origin/feature/hoge
Branch 'feature/hoge' set up to track remote branch 'feature/hoge' from 'origin'.

# 追加後の状態確認
$ git branch -vv
* feature/hoge fefad7b5 [origin/feature/hoge] wip

初回プッシュ時にリモート追跡ブランチの追加も同時に行う

$ git push --set-upstream-to origin <your-local-branch>

# または
$ git push -u origin <your-local-branch>

例:

# リモートブランチ名はローカルブランチ名と同名になる
$ git push -u origin feature/fuga
...
Branch 'feature/fuga' set up to track remote branch 'feature/fuga' from 'origin'.

# 明示的にリモートブランチ名を指定する場合
$ git push -u origin feature/fuga:feature/fuga