【Git】ローカルのmainブランチを最新にしてマージ後リネームしたい

Git

こんにちは!moegi(@moegi_web)です。
自分の備忘録的に書いております。
ローカルのmainブランチを最新にしてマージした後にリネームをした方法の記録になります。

ローカルのmainブランチを最新にしたい

`git pull`するために`git switch main`でmainブランチに切り替えたい→差分があるのでエラーがでてしまう。

$ git switch main
error: Your local changes to the following files would be overwritten by checkout:
05.ls/ls.rb
Please commit your changes or stash them before you switch branches.
Aborting

`git rm -f ls.rb`で ls.rb を削除する。
(一度 `git rm ls.rb` を試したけどできなかったので`-f` オプションをつけて強制的に削除したら出来た!)

$ git rm -f ls.rb
rm '05.ls/ls.rb'

`git switch main`を再実行してmainブランチに切り替える。

$ git switch main
D 05.ls/.gitkeep
Switched to branch 'main'
Your branch is behind 'origin/main' by 36 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)

自分がmainブランチに居る状態で`git pull`を実行する → 出来た!🙌✨

$ git pull
From https://github.com/KMZ0209/ruby-practices
3cef502..4734fa3 ls -> origin/ls
3e55bf7..4c44a91 ls4 -> origin/ls4
Updating 8ef9f4e..d8870ef
Fast-forward
04.bowling/bowling.rb | 41 +++++++++++++++++++++++++++++++++++++++++
05.ls/ls_1.rb | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 107 insertions(+)
create mode 100644 04.bowling/bowling.rb
create mode 100644 05.ls/ls_1.rb

ローカルでmainブランチをls_4ブランチにマージ

`git switch ls_4`で自分がls_4ブランチにいる状態にする

$ git switch ls_4
D 05.ls/.gitkeep
Switched to branch 'ls_4'

`git merge main`を実行→突然viが起動して焦る💦マージメッセージを入れて!とのこと。

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.

VScodeで開いていたけど書き込みも保存もできないので強制終了してしまった😅

`git merge main`を ubuntuで開き直して実行→ エラーがでる。VScode で実行したマージが中途半端になっている様子。

fatal: You have not concluded your merge (MERGE_HEAD exists).
Please, commit your changes before you merge.

`git reset –merge`でリセットする(`–`は2つ)
エラーは何もでないのでリセット出来たっぽい!

`git merge main`を再実行。やはり vi が起動して同じメッセージがでる。

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.

今度は強制終了しないでちゃんと向き合う。

以下の方法で出来た🙌✨(WSL2の場合)
`^O`は[Ctrl + oキー] を押すと入力保存
`^X`は[Ctrl + xキー]を押すとエディタからExitできる!

参考にしたページ →
git commitコマンド実行時にGNU nanoエディタを利用してコミットメッセージを書く

vi から抜けたらマージが出来ていた🙌✨

ls_1.rb を ls.rb にリネームしたい

`git branch`で居場所をみる。ls_4ブランチにいることを確認。

bowling
ls
ls2
ls3
ls4
ls_3
* ls_4
main

`git mv ls_1.rb ls.rb`でリネーム→すんなり出来た🙌✨

まとめ

紆余曲折しながらもなんとかマージ&リネームが出来て良かったです!
vi の操作もすっかり忘れていました。
???になったら復習することも大事だなと思いました。

コメント

タイトルとURLをコピーしました