自分用メモ
ローカルの差分内容が正しいのでリモートに上書きしたいのにエラーが出る場合
git push -f origin hoge
-f はforce(強制)オプション
リモートの差分内容が正しいので、 ローカルに上書きしたいのにエラーが出る場合
git fetch origin hoge
=リモートの当該ブランチの内容を取ってくる
git reset --hard origin/hoge
# reset(取り消し=上書き)
# --hard(最新という意味)
# リモートにある当該ブランチの最新状態でローカルを塗りつぶす(わりと強力なコマンド。一回実行すると取り消せない。取扱い注意。どのブランチのどのバージョンを持ってくるかちゃんと確認する)
間違えてコミットまでしてしまったとき、そのコミットを取り消したいとき
$ git reset --soft HEAD^
これまでのコミットログ履歴を一時的に確認したいとき
$ git log # どのバージョンを見たいかコミットログのSHA値(ada25....)を確認する
> commit qwertyuiopasdfghjklzxcvbnm
> Merge: aaa111 bbb222
> Author: hoge tarou
> Date: Tue Jun 20 18:53:25 2022 +0900
$ git switch -d qwertyuiopasdfghjklzxcvbnm # 一時的に見たいコミットログを指定する
> HEAD is now at qwertyu CDKの修正
# 特定のコミットログまで戻したい場合は
git reset --hard ハッシュ値
強制的にgit pullをしてローカルの内容をリモートの内容で書き換えたい
- https://hrroct.hatenablog.com/entry/2020/11/04/203109
結論だけ書くと対象をmasterブランチとします。 ローカルの修正は消えますので、要注意です。
# masterブランチにチェックアウト
git checkout master
# リモートの最新の状態を取り込む
git fetch origin master
# リセットする
git reset --hard origin/master
# もし既にmasterブランチにいて、git pullやgit mergeによりコンフリクトを起こしてたら…
# merge処理の取り消しを行う
git merge --abort
# リモートの最新の状態を取り込む
git fetch origin master
# リセットする
git reset --hard origin/master
特定のcommitまで戻り、リモートへ強制pushしたいとき
# ①戻りたいcommitのハッシュ値を調べる
git log //ハッシュ値を調べる
上記コマンドを打つとコミット毎に以下のような表示が出てきます。
commit ************************ //ハッシュ値
# ②特定のcommitまで戻る
git reset --hard ハッシュ値
# ③戻した結果をリモートへ強制push
git push -f origin ハッシュ値:master
-f オプションで強制的にpushしています。
で、
$ git reset --hard zxcvbnmasdfghjqwertyu
タイポのままpushまでしてしまったコミットメッセージを修正したい
git commit --amend -m "修正後のコミットメッセージ"
git push --force origin ブランチ名
逆マージの場合
- source(masterとかdevとか)とtarget(feature/hogeとか)ブランチ両方で手元で
$ git pull
- targetブランチで
$ git merge dev
<<<<<<<HEAD(Current Change) と >>>>>>>dev-env(Incoming Change)
#上記がvscode上に表示されるので取り込みたい差分を選択すれば良い