メインコンテンツへスキップ

.gitディレクトリを削除・コピーし忘れた時の復元方法

目次

.gitディレクトリを削除してしまった・または.gitディレクトリ以外をコピーした場合の復元方法を紹介します。

ファイルをいくつか変更していても大丈夫です。また、WindowsでもLinuxでもコマンドは同じです。

結論
#

cd <プロジェクトのディレクトリ>
git init
git remote add origin <リモートリポジトリのURL>
git fetch origin
git branch -M main
git reset origin/main

※リモートのブランチ名が違う場合は置き換えてください(mainmasterなど)

解説
#

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は便利なので調べてみてください。私が書いた解説記事もあります(宣伝)↓



\ 魂こめて記事書いてます!よかったらシェアしてね! /