git 過去のコミットに戻り編集しリモートに同期

ローカル・リモートともに master というブランチで作業していることを前提とします。

Vscodeのソース管理グラフで Checkout(Detachd)を選択

数個前のコミットに戻りたい場合はそのタイトルを右クリックしてCheckoutします。

これでブランチから外れた状態です。

方針としては

  • ローカルの戻りたい時点のコミットでCheckOut
  • masterブランチから外れてしまうので別のブランチ名をつける
  • 別のブランチ名で作業する
  • ローカルのmasterに別のブランチを上書きする
  • ローカルのmasterをリモートのmasterに上書きする

となります。

新しいブランチをつくる

git checkout -b new-branch-name

gitのブランチの確認は

# git branch

※がついたものが今使っているブランチです。

新しいブランチで作業を続けます。

新しいブランチでコミット

こちらは普通にコミットしていけばOKです。

git add .
git commit -m "ファイル更新内容"

masterブランチに戻る

作業が終わったらマスターブランチに戻ります。

git checkout master

masterブランチを新しいブランチで上書きする

ローカルの master ブランチを新しいブランチ (new-branch-name) の内容で上書きします。

git reset --hard new-branch-name

リモートに強制プッシュする

ローカルの master ブランチをリモートに強制プッシュして、リモートの master を上書きします。

git push origin master --force

この手順で、リモートの master ブランチが新しいブランチの内容で上書きされ、ローカルとリモートの master ブランチが新しい内容に更新されます。



Author: webmaster