0
0

git pushを取り消す方法・力技(個人開発&リポジトリ作りたての場合)

Posted at

注意

Qiita初投稿です。私は今日gitとgithubを触り始めたレクリエーションプログラマーです。
仕事でプログラミングをしているわけでもなければ、学生時代に学んだこともありません。

また、私の環境はWindows10で、今回の作業はVScodeを使って行いました。

起こった問題

git pushしたリポジトリの最初のコミットに
APIキーやらメールアドレスやら非公開の情報が含まれていました。

やりたいこと

非公開の情報を含んだコミット履歴を消したい。
このpushをなかったことにしたい!

やったこと

個人開発でしかやっちゃいけない?事かもしれませんが、力技で解決しました。
2回目のコミットを「1回目のコミットとして」pushしました。

具体的には以下のようにしました。

  • ローカルのリポジトリを削除する
  • 再度ローカルのリポジトリを作成して、初回のコミットを行う
  • ローカルのGitHubのリポジトリに紐付け、pushする

順に解説します。

ローカルのリポジトリを削除する

ローカルのプロジェクトディレクトリに存在していた.gitフォルダを削除しました。これでローカルのリポジトリは削除完了とのこと。簡単。

image.png

再度ローカルのリポジトリを作成して、初回のコミットを行う

これも簡単。さきほど消した.gitが入っていたディレクトリでgit initgit add <ファイル名>git commit -m "コメント"するだけ。

ローカルのGitHubのリポジトリに紐付け、pushする

git remote add origin <GitHubリポジトリのURL>でローカルリポジトリとGitHubのリポジトリを紐づけ。

それからpushするんだけど、普通にgit push origin <ブランチ名>するとエラーが出る。これは簡単に言えばローカルに無いデータを含むクラウドのリポジトリを、ローカルのもので上書きしちゃうよ!ってことかと思う。
image.png

でも個人開発のしかも初回コミットしたものをなかったことにしたい私は気にしない。-fコマンドで強制的に上書きしました。

git push -f origin <ブランチ名>で無事、目的が叶えられました。

感想

私と同じ、GitHub触りたてで右も左もわからない方の助けになれば幸いです。

今までよくわかんなくて敬遠していたGitとGitHubに触ってみてなんとなくわかった。
ただ、趣味の個人開発でどこまで有用な(生産的な)使い方できるかはわからないし全然自信ない。。。

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