0
0

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 3 years have passed since last update.

[gitトラブルシューティング]誤ってresetとpushをしてしまったときの対処法

Posted at

はじめに

みなさん、こんにちは。profsend開発者のぐみぃです。
みなさんはこんな経験がありますか?
「作業中に誤ってresetして、更にpushもしてしまった!もう大ピンチ...」
僕も一度そうなったことがあります。
でも、この方法をすれば、簡単に戻せます。

reflogで作業履歴を確認する

git reflog

このコマンドは、作業履歴を確認するコマンドで、

git log

との違いは、
resetなどのコマンドの履歴も含まれる
ということです。
戻し方は、

git reset --hard HEAD@{数字}

数字の確認は下記の通りになります。

$ git reflog
作業ID HEAD@{数字}: 作業内容
              ↑ここ

ただ、reflogでは表示できる数に限りがあるので、
間違えたらすぐに対処しましょう!

もしsubmoduleがあった場合

gitには、別のリポジトリを取り込める、
submoduleという機能があります。
その場合は更に簡単にできます。

まず、submoduleがあるリポジトリのgithubページへアクセスしてください。
そして、
image.png
コミット名の部分をクリックし、

image.png
commitの右の英数字がコミットIDです。それを

git merge コミットID
もしくは、
git cherry-pick コミットID

でリポジトリに取り込めば、リポジトリを復旧できます。
あとはpushすれば完全に復旧できます!

参考

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?