git のレポジトリを作り直す

レポジトリが変になって、万策尽きた時はレポジトリを作り直すしかない?

そんな時のメモ。内容はほとんど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を許容させるか、一旦プロテクトを外してから上記コマンドを実行する。 その後プロテクトすれば良い。