ローカル・リモートともに 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
ブランチが新しい内容に更新されます。