web-dev-qa-db-ja.com

Git(TortoiseGit)-単一のファイルを以前のリビジョンに戻した後、元に戻す方法

TortoiseGitでGitを使用する場合:単一のファイル(または完全なリポジトリ)を以前のリビジョンに戻す方法を誰かが知っていますか?

たとえば、複数のファイルを含むリポジトリがあります。 3つのリビジョン(1; 2; 3)に1つのファイルが存在します。次に、リビジョン3から2に戻したいと思います。

TortoiseGitは、「ログの表示」ダイアログに「元に戻す」機能を提供しており、特定のリビジョンに戻ることができますが、これにより、単一のファイルではなくリポジトリ全体が元に戻ります。

また、何かを元に戻した後は、元に戻す操作を元に戻して最新のリビジョンに戻る方法がわかりません。

31
Alexander

TortoiseGitでの答えは、プロジェクトフォルダーを右クリックして[ログの表示]をクリックし、次にロールバックする変更を右クリックして[これに切り替え/チェックアウト...]をクリックすることです。これにより、コミットスタックの奇妙な場所から処理を進めることができます。コミットを計画していて、正常な状態を維持したい場合は分岐できます。

19
Chris Moschini

コマンドラインから: git checkout はおそらく必要なものです。

ドキュメントは次の例を示しています:

$ git checkout master~2 Makefile

Makefileをmasterブランチの2つのリビジョンに戻すには

TortoiseGit内(Windowsエクスプローラーを使用)では、次の手順でこれを実行できるようです。

  • エクスプローラで、ファイルがあるフォルダに移動します。
  • 元に戻すファイルを右クリックし、TortoiseGitコンテキストメニューからShow logを選択します
  • 上部のセクション(「グラフ」)で、元に戻したいファイルのバージョンを持つリビジョンを選択します
  • 3番目のセクション(ファイルリスト)でファイルを右クリックし、Revert to this revisionを選択します
  • 1 files revert to e19a77のようなメッセージが表示されます
  • 15
    mlibby

    特定のファイルを取得することも可能です。

    • ファイルを右クリック
    • メニュー項目を選択します:Git Show Log

    TortoiseGitはすべてのリビジョンのリストを含むダイアログを表示します

    • 以前のリビジョン(2)をクリックします

    ダイアログ下部のリストには、コミットに関連するすべてのファイルが表示されます

    • 表示したいファイルを見つける
    • そのファイルを右クリックしてリビジョンを保存
    • これにより、ファイルの以前のリビジョンが保存され、コミット番号がファイルに連結されます。

    例:-元のファイルはfile.txtです-リビジョン2はfile-67b51a8.txtとして保存されます

    TortoiseGit v2.2.0.0を使用しています

    10
    mxmoss

    これらのコメントに基づいて私の答えを更新しました:


    作業ツリーがクリーンで、次のようにしたいとします。

    1. 以前のリビジョンのいくつかのファイルをチェックアウトします
    2. テスト中
    3. 現在のリビジョンに戻す

    1. 以前のリビジョンのいくつかのファイルをチェックアウトします

      (a)元に戻したいファイルを右クリックし、そのファイルのログを表示します

      enter image description here

      (b)ファイルリストでファイルを右クリックし、親のリビジョンに戻すを実行します

      enter image description here

      enter image description here

      (c)必要なすべてのファイルが得られるまで、(a)、(b)を繰り返します。

      enter image description here

    2. テスト中

    3. 現在のリビジョンに戻す

      (a)エクスプローラーのコンテキストメニューでRevert ...を実行する

      このようにして、元に戻すファイルを選択できます。

      (b)またはこの簡単な方法:ログダイアログでReset Hardを実行します

      これにより、変更されたすべてのファイルが元に戻ります。 (=>すべての作業ディレクトリの変更が失われました)

      enter image description here

      enter image description here

    (TortoiseGit 1.8.16.1、GfW 2.6.4.windows.1、Win 10 64ビットでテスト済み)

    8
    Yue Lin Ho

    Tortoiseバージョン2.3.0の場合:

    あなたはそれをいくつかの方法で行うことができますが、私が思うに最速はそれです:

    1. ファイルを右クリック
    2. メニューオプション[以前のバージョンとの相違]をクリックします。
    3. ファイルの左(前の)バージョンを右クリック
    4. メニューオプション[このファイル全体を使用する]をクリックします
    5. 変更を保存(Ctrl + S)
    1
    Ovsyanka