0

すべてのコミットとファイルを特定のコミットにロールバックしようとしています。私が行ったすべての変更と、その特定のコミット以降に作成されたすべてのファイルを取り除きたいです。

次を使用してロールバックを試みました:

git checkout #commit_to_restore_to
git reset --hard #commit_to_restore_to

という確認が取れますHEAD is now at #commit_to_restore_to "Commit_message"

ただし、私のファイルは以前とまったく同じです。すべてのファイルをロールバックするにはどうすればよいですか?

私はUbuntu 12.10を使用しています。

詳細は次のとおりです。

$ git status
<<fill this in>>

# git diff --name-status #commit_to_restore_to  #provide real commit number please.
<<fill this in too>>
4

4 に答える 4

1

ブランチ ref を書き換える簡単な方法は次のとおりです。

git branch -f mastercommit

現時点でそのブランチにいる場合は、

git checkout -B mastercommit

于 2013-03-06T19:31:46.790 に答える
0

コミットする場合checkoutは、そのコミットの時点でのリポジトリの内容が作業ディレクトリにあります。したがって、することは何もありませんreset。代わりにやったら何かがあるでしょう:

$ git checkout <commit>
# muck with files; do some other git stuff
$ git reset --hard <commit>

上記の場合、reset実際に何かをします。

あなたが本当に望んでいるのは、コミット後にすべてを忘れて、開発を続けることのように思えます。もしそうなら、これは機能します(あなたがmasterブランチにいると仮定します):

$ git checkout -b tmp-branch <commit>
$ git branch -d master
$ git branch -m tmp-branch master

上記に注意する必要があります。

于 2013-03-06T19:20:03.163 に答える
0

気をつけろ!あなたがしたとき、あなたはgit checkout SHA浮遊枝に行き着きました。 git status次のように言う必要があります。

# Not currently on any branch.

からの警告もありましたgit checkoutmasterでブランチをリセットしたい場合は、git reset --hard SHA最初に でそのブランチに戻りますgit checkout master

于 2013-03-07T07:11:08.547 に答える
0

とても恥ずかしいです。ファイルが変更されていました。問題は、フォルダーが変更されていないことです。私の.gitignoreには(たとえば)pycファイルがあるため、コミット後に作成したフォルダーは、それらのファイルが含まれていたため、まだそこにありました。同じツリー構造が表示され続けたため、ディレクトリで ls を実行していて気が狂っていました。

申し訳ありませんが、ありがとうございます!

于 2013-03-07T07:06:19.333 に答える