88403
例えば、以下のような状態があったとして、現在は、Branch Aで作業しているとします。これを main origin/mainにする方法はありますか？

```

    ----〇----〇----〇----〇----〇----〇----● Branch A
     └─〇----★main origin/main
    
```

※〇はpushしたタイミングで、●は現在の作業場所です。

★に含まれる変更点ついては、マージやチェリーピックなどの必要はなく、ここで放置で良い状態です。

ツールは、

  * Git Extensions 3.5.4.12724  
を使っています。

よろしくお願いいたします。
CC BY-SA 4.0
2022-04-18T06:17:30.777
88376
2022-04-20T16:58:52.213
2022-04-18T06:50:54.923
3060
43160
question
git
gitでのブランチを置き換える方法について
```

    $ git checkout main
    
```

マージもするなら、

```

    $ git checkout main
    $ git merge branchA
    
```

これが普通のやり方かと思います。もしマージしたくなくて、リネームだけがやりたいなら、

```

    $ git branch -m main tmp
    $ git branch -m branchA main
    
```

「mainは放置でいい」といっても、branchAをmainにリネームするなら重複することになるので、放置する用の名前(この場合はtmp)が必要です。branchAという名前のブランチはなくなるので、やるなら自己責任でお願いします。
CC BY-SA 4.0
2022-04-19T17:51:31.083
88403
2022-04-19T18:26:17.187
2022-04-19T18:26:17.187
52014
52014
88376
answer
対応後が次のようなイメージであるならば、

```

    ----〇----〇----〇----〇----〇----〇----● main origin/main
     └─〇----〇 old_main
    
```

次の操作で行えます:

```

    # 作業ディレクトリに branch-a をチェックアウト
    git checkout branch-a
    # 現在の main ブランチ名をリネーム
    git branch -m main old_main
    # 現在チェックアウトしているブランチの名前(branch-a)を main に変更
    git branch -m main
    # 現在チェックアウトしているブランチ(branch-a 改め main)を GitHub 上の main ブランチに上書き
    git push -f -u origin HEAD
    
```
CC BY-SA 4.0
2022-04-19T21:30:24.513
88405
2022-04-20T16:58:52.213
2022-04-20T16:58:52.213
2808
2808
88376
answer