1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

git push -f origin master をやりなおす

1
Posted at

結論

force push 禁止しよう。
一人でもプルリク運用した方が安全。

前提

  • 中央リポジトリは github
  • master へのコミットは原則禁止し、PullRequest で運用
  • 個人無料アカウント
  • 一人プロジェクトなので、他のマシンなどに master 最新のコミットが残っていたりはしない

サマリ

  1. github のサイト上で、master にマージされた最新のPRを探す
  2. 上記 PR のマージコミットの番号を調べる
  3. 該当のコミットをローカルに fetch する
  4. そのコミットにチェックアウトしてブランチを切る
  5. そのブランチを master として force push する

状況

  • master 最新になっていないローカル master を git push -f origin master した
  • 結果、 github 上のコミット履歴が1ヶ月くらい前にタイムスリップ
  • github のサイトではプルリクやマージの状況は残っている
  • ローカルにも他のマシンにも最新のコミットがない
  • 目の前が真っ暗になった

対応

1. github のサイト上で、master にマージされた最新のPRを探す

push-f-master_1.png

2. 上記 PR のマージコミットの番号を調べる

PRのページの下の方にスクロールするとマージされたコミット番号が表示されているはず。
それをクリックするとマージコミットのページに移動する。
push-f-master_2.png
URLないし画面内のコミット番号をコピーする。
push-f-master_3.png

3. 該当のコミットをローカルに fetch する

ローカルで fetch する

git fetch origin コミット番号

fetch したコミットは FETCH_HEAD にある。

4. そのコミットにチェックアウトしてブランチを切る

git checkout FETCH_HEAD
git checkout -b 任意のブランチ名

そのブランチを master として force push する

git push -f origin 任意のブランチ名:master

はぁ、また force push するの。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?