0

ローカルバージョン管理にGitを使用する方法を学ぼうとしていました。IDEとしてXcodeを使用していました。ステージングされていない変更が3000あることがわかったときに、最新の変更を追加しようとしました。無意識のうちに上演しました。次に、プロジェクトのルートディレクトリに移動して、同じファイルを含む同じディレクトリを見つけました。それを削除しましたが、ステージングされたファイルが見つからなかったため、リポジトリが破損した状態になりました。私は実際に何をすべきでしたか、そしてこれはどのように起こったのでしょうか?

4

1 に答える 1

3

フォルダーを削除した場合は.git、実際のローカル リポジトリのクローンを削除したことになります。ソースを回収し (どこかに適切なバージョンがあることを願っています)、それらを使用して新しいリポジトリを最初から初期化します。


バックアップ リポジトリを作成したい場合、作業を行う場所が既にある場合は、保持したいコミットされていない変更がないことを確認した後、これがおそらく最も簡単な方法です (bash コマンドですが、 bash は使用しないでください):

cd work/myproject
cd ../..
mkdir backup-upstream
cd backup-upstream
git clone --no-checkout ../work/myproject

その後、そのバックアップに直接触れる必要はありません。これで、現在の作業/プロジェクトをそれに従うように設定できますが、上から続けて、新しいクローンを作成するのが最も簡単で、エラーが発生する可能性が最も低くなります。

cd ../work
mv myproject myproject-backup
git clone ../backup-upstream/myproject
cd myproject

これらのファイルの違いをチェックアウトして、実際に何が変更されたかを確認することは有益です。

cat .git/config
cat ../myproject-backup/.git/config

あとはいつも通りに作業しwork/myprojectて、バックアップを取りたいときはgit push. backup-upstream の下のクローンは、たとえば github からのリモート アップストリーム リポジトリと見なす必要があります。実際にローカル ファイルシステムからアクセスするかどうかは問題ではありません。新しいブランチを作成する場合は、それらを個別にプッシュする必要があることに注意してください。参照:ローカル Git ブランチをリモート リポジトリにコピーする方法

于 2013-02-28T06:01:19.677 に答える