レポジトリが変になって、万策尽きた時はレポジトリを作り直すしかない?
そんな時のメモ。内容はほとんどGitのリポジトリ(履歴)を初期化する #Git – Qiitaのままである。
目次
remoteレポのURLをメモっておく
git remote -v
以下のような表示が返ってくる:
$ git remote -v origin https://gitHost.com/dir-name/repo-name.git (fetch) origin https://gitHost.com/dir-name/repo-name.git (push)
ローカルのレポを消す
消したいレポがあるディレクトリ(フォルダ)で以下を実行する:
rm -rf .git
これで、ローカルのgit レポは消える。
ローカルのレポを作り直す
git init
(これ以降は以前と同様にリモート・レポを設定する。)
例えば
git add README.md git commit -m "Initila commit"
などを実行する。
リモートレポの設定
git remote add origin https://gitHost.com/dir-name/repo-name.git
強制的にpush
ここまではローカルを初期化しただけで、リモートは変な状態のまま。これをリモートに反映させる。
git push -u origin main -f
GitLabでブランチをプロテクトしていると、forceを受け付けない場合がある(forceを許す設定も可能)。
forceを許容させるか、一旦プロテクトを外してから上記コマンドを実行する。 その後プロテクトすれば良い。