2

gitの使用方法について多くの情報源を読んでいるので、必要が生じた場合にいつロールバックできるかを示唆する記事はありません。たとえば、作業ディレクトリのgitディレクトリを初期化しました。git init

次に、ファイルをgitのインデックスに追加しますgit add .。これにより、すべてのファイルがgitのインデックスに追加されました。これで、ファイルをgitのリポジトリにコミットするのではなくgit commit、インデックスに追加したファイルの1つに変更を加えます。私は間違いを犯したことに気づきます。以前の状態にロールバックできますか、それともファイルをコミットした場合にのみ可能ですか?私の理解では、コマンドを実行すると、1git add .つまたは複数のファイルのコピーがgitのオブジェクトストアに作成されます。オブジェクトストア内のファイルは圧縮されていると思います。これは、オブジェクトストアからロールバックできることを意味しますか?

4

4 に答える 4

2

はい、できます。試す

git checkout-index -f foo

fooインデックスからチェックアウトします。または、すべてのファイルをチェックアウトします

git checkout-index -fa
于 2013-01-24T00:59:44.820 に答える
2

使用する

git checkout -- <file>

インデックスへの変更を保持しながら、作業ディレクトリの変更を破棄します。

于 2013-01-24T01:00:34.827 に答える
1

git checkouttree-ish を指定せずに使用すると、インデックスからチェックアウトされます。

于 2013-01-24T01:00:27.317 に答える
1

質問に興味をそそられ、答えは「はい」のようです。git add はファイルのコピーをリポジトリに配置し、リポジトリでコミットが行われていない場合でもファイルをロールバックできます。

% mkdir test && cd test
% git init .
% echo "1" > test.txt
% git add test.txt
  - git status shows now "added" file
% echo "2" > test.txt
  - git status shows "added" and "modified" file, test.txt contains number 2
% git checkout test.txt
  - git status shows only "added" again, and test.txt contains the number 1
于 2013-01-24T01:08:06.593 に答える