注意
Qiita初投稿です。私は今日gitとgithubを触り始めたレクリエーションプログラマーです。
仕事でプログラミングをしているわけでもなければ、学生時代に学んだこともありません。
また、私の環境はWindows10で、今回の作業はVScodeを使って行いました。
起こった問題
git pushしたリポジトリの最初のコミットに
APIキーやらメールアドレスやら非公開の情報が含まれていました。
やりたいこと
非公開の情報を含んだコミット履歴を消したい。
このpushをなかったことにしたい!
やったこと
個人開発でしかやっちゃいけない?事かもしれませんが、力技で解決しました。
2回目のコミットを「1回目のコミットとして」pushしました。
具体的には以下のようにしました。
- ローカルのリポジトリを削除する
- 再度ローカルのリポジトリを作成して、初回のコミットを行う
- ローカルのGitHubのリポジトリに紐付け、pushする
順に解説します。
ローカルのリポジトリを削除する
ローカルのプロジェクトディレクトリに存在していた.gitフォルダを削除しました。これでローカルのリポジトリは削除完了とのこと。簡単。
再度ローカルのリポジトリを作成して、初回のコミットを行う
これも簡単。さきほど消した.gitが入っていたディレクトリでgit init
、git add <ファイル名>
、git commit -m "コメント"
するだけ。
ローカルのGitHubのリポジトリに紐付け、pushする
git remote add origin <GitHubリポジトリのURL>
でローカルリポジトリとGitHubのリポジトリを紐づけ。
それからpushするんだけど、普通にgit push origin <ブランチ名>
するとエラーが出る。これは簡単に言えばローカルに無いデータを含むクラウドのリポジトリを、ローカルのもので上書きしちゃうよ!ってことかと思う。
でも個人開発のしかも初回コミットしたものをなかったことにしたい私は気にしない。-f
コマンドで強制的に上書きしました。
git push -f origin <ブランチ名>
で無事、目的が叶えられました。
感想
私と同じ、GitHub触りたてで右も左もわからない方の助けになれば幸いです。
今までよくわかんなくて敬遠していたGitとGitHubに触ってみてなんとなくわかった。
ただ、趣味の個人開発でどこまで有用な(生産的な)使い方できるかはわからないし全然自信ない。。。