.gitディレクトリを削除してしまった・または.gitディレクトリ以外をコピーした場合の復元方法を紹介します。
ファイルをいくつか変更していても大丈夫です。また、WindowsでもLinuxでもコマンドは同じです。
結論 #
cd <プロジェクトのディレクトリ>
git init
git remote add origin <リモートリポジトリのURL>
git fetch origin
git branch -M main
git reset origin/main※リモートのブランチ名が違う場合は置き換えてください(main→masterなど)
解説 #
cd <プロジェクトのディレクトリ>まずプロジェクトのディレクトリに移動しましょう。エクスプローラー等で移動してからターミナルを開いても大丈夫です。
git initまずは今いるディレクトリでGitを初期化してGitを使えるようにしましょう。
git remote add origin <リモートリポジトリのURL>リモートリポジトリを追加します。URLにアクセスする権限があるか確認しておくと次に困りません。
git fetch originリモートリポジトリの内容を取得します。(まだ反映はしない)
リモートリポジトリにアクセスする権限がない場合はエラーが出ると思います。その際は確認しましょう。
git branch -M mainローカルでmainブランチを作成します。リモートリポジトリがmain以外の場合は置き換えてください(masterなど)。
git reset origin/main取得したリモートリポジトリの内容をローカルに反映します。
git resetコマンドのデフォルトのモードは--mixedです。このモードはローカルのファイルには変更は加えないので安心です。
ここまで行うと、リモートリポジトリの状況を反映したうえで、そこから変更したファイルのみ「変更」として取り扱われます。その後、addでステージして、commitでコミットして、pushでプッシュすれば変更がリモートに反映されます。
なお、よくわからなくなって最初からやり直したいということであれば.gitディレクトリを削除すればいいと思います。
余談 #
余談として、なんでこのような状況になったかをメモしておきます。
私は Syncthing というソフトで複数のパソコンのデータを同期しているのですが、不具合が起こりそうだったので.gitディレクトリは共有ディレクトリから除外しています。
そうすると、リポジトリを作成したパソコン以外には.gitディレクトリがないため、他のパソコンで作業をしようとするとGitが使えない状態になってしまいます。
おわり #
.gitディレクトリだけを消してしまった、ということもたまにあるかも(?)と思うので、役立てていただけたら幸いです。
あと、ちらっと出てきたSyncthingは便利なので調べてみてください。私が書いた解説記事もあります(宣伝)↓