2016-10-13 12 views
0

Gitバージョン管理(サブフォルダ.git)の下にあるMyDirectoryのコピーを作成してコミットすると、これはバージョン履歴などの小さなリポジトリのようにすべて「動作しますか?Gitリポジトリをバックアップに置き換えることはできますか?

これまでのMyDirectoryをこのコピーに置き換えてそのまま使用できますか?

背景: 私のGitのレポはすべて汚れてしまった。前の日のディレクトリ全体のディレクトリのバックアップに置き換えて、そこから移動したいと思っています。

+3

「git checkout」はなぜ昨日のバージョンではないのですか? – Danh

+1

とにかく、バックアップと交換する前に完全に取り外す必要があります – Danh

答えて

2

はい、これを行うことができますし、問題はありません。

バージョン履歴を管理するためにGitが必要とするものはすべて、.gitフォルダにあります。したがって、そのフォルダをそのフォルダの古いバージョンに置き換えると、その古い状態に戻ることになります。 git checkoutまたはgit revertでGitロールバックを実行しているとは異なり、は、以後レポに追加されたすべての履歴を失います。

@Danh suggestedのように、バックアップを復元する前に、既存のバージョンのフォルダを削除する必要があります。 (実際には、Gitオブジェクトは不変なので、これが必要かどうかは分かりませんが、それは傷ついてはいけません)。既存のバージョンのフォルダからデータを失わないようにしたい場合は、名前を変更してバックアップを復元します。

「すべてがうまくいった」という意味に応じて、バックアップからリストアせずにリカバリすることは可能です(特に、--forceのような「危険な」コマンドを実行していない場合)。助けが必要な場合は、search aroundまたはask hereまでお気軽にお問い合わせください。

関連する問題