質問

かつのおかげで、特定のコミットgit?

最良の答えを誰かがった利用 git revert Xの時代まで、目標値に到達するコミットする

しましょうと言いたいのに帰属するコミットするの20を犯しいで20倍。

あくるのか?

利用できないリセットがこのリポジトリで公開します。

役に立ちましたか?

解決

これを試してください:

git checkout [revision] .

[revision](たとえば:12345678901234567890123456789012345678ab)コミットハッシュです。

、最後に非常に重要な.を忘れないでください。これは、ツリー全体に変更を適用します。あなたはgitのプロジェクトのルートでこのコマンドを実行する必要があります。あなたが任意のサブディレクトリにある場合、このコマンドは、現在のディレクトリ内のファイルを変更します。次に、コミット、あなたは良いことがあります。

は、

により、これを元に戻すことができます
git reset --hard 

それは、作業ディレクトリとステージングエリアからすべての変更を削除します。

他のヒント

具体的にロールバックするにコミットします:

git reset --hard commit_sha

10回のコミットをバックロールバックするには:

git reset --hard HEAD~10
あなたは歴史を書き換えたくない場合は、

次の記事でとして「Gitの元に戻す」を使用することができます。

コミット以前にGitリポジトリを戻す方法<? />

まあ、私はあなたには、「ロールバック」によって何を意味するか、疑問があると思いますか?それは公共のだとあなたはそのままコミットの歴史を維持したいので、あなたがresetことができない場合は、あなただけのコミットの特定を反映するために、あなたの作業コピーをしたい意味ですか? git checkoutとコミットハッシュを使用します。

編集:ブランチを指定せずにgit checkoutを使用して、コメントで指摘されたように「ノーブランチ」の状態であなたを残します。ブランチにチェックアウト、または現在のブランチにチェックアウトするgit checkout <commit> -b <branchname>するgit checkout <commit> .を使用します。

元のポスター:

最良の答えを誰かがった利用 git revert Xの時代まで を希望す。

しましょうと言いたいのに帰属するコミットするの20を犯しい である20。

あくるのか?

利用できないリセットがこのレポ-レートが公開。

必要がないために利用 git revert Xます。 git revert 受け入れ可能で コミット範囲の引数は、どうするために必要な一度ご使用いただければこのに戻すには範囲を のを設定します。 例えば、たい場合に戻すには最後の20犯:

git revert --no-edit HEAD~20..

のコミット範囲 HEAD~20..HEAD~20..HEAD, を開示することで、開始から20th 親会社のヘッドをミッ戻すべての犯後までとなってヘッド"

ることに戻りますが、過去20犯, と仮定しない統合 を設定します。 がある場合併する為の、元に戻すことはできませんそのすべてを一つのコマンドにする必要がありますに帰属しま

git revert -m 1 <merge-commit>

また、私は試験用範囲 git revert gitを使用版1.9.0. 使用している場合は、古いバージョンのgitを使用範囲 git revert はうまく動かない場合もあります。

この場合、 git revert は優先 git checkout.

この この答えというの利用 git checkout, git revert 実際に削除ファイルに追加された任意の犯ん 帰, で、この方法に戻すの範囲を修正します。

文書

ステップ1: フェッチの一覧を犯:

git log

しょリストのようなこの例:

[Comp:Folder User$ git log
commit 54b11d42e12dc6e9f070a8b5095a4492216d5320
Author: author <author@gmail.com>
Date:   Fri Jul 8 23:42:22 2016 +0300

This is last commit message

commit fd6cb176297acca4dbc69d15d6b7f78a2463482f
Author: author <author@gmail.com>
Date:   Fri Jun 24 20:20:24 2016 +0300

This is previous commit message

commit ab0de062136da650ffc27cfb57febac8efb84b8d
Author: author <author@gmail.com>
Date:   Thu Jun 23 00:41:55 2016 +0300

This is previous previous commit message
...

ステップ2: コピーに必要なコミットのハッシュペーストしたアウト:

git checkout fd6cb176297acca4dbc69d15d6b7f78a2463482f

ることはありません。

git read-tree -um @ $commit_to_revert_to

それを行います。それは "Gitのチェックアウト" が、HEADを更新せずにいます。

は、

と同じ効果を得ることができます
git checkout $commit_to_revert_to
git reset --soft @{1}
あなたが糸引き利便性を好む場合は、

コマンドを一緒ます。

これらが所望の状態でごworktreeとインデックスであなたを残して、あなただけの終了するgit commitことができます。

私が変更さわからないんだけど、私はオプション--detachせずにコミット特定をチェックアウトすることができません。私のために働いた完全なコマンドは: git checkout --detach [commit hash]

私は自分のローカルブランチをチェックアウトしなければならなかったデタッチ状態から戻って取得するには、次のgit checkout master

あなたがプロジェクトに一日かそこら後に仕事しましょう。あなたは一つの特徴は、まだあなたにエラーを与えているに気づきます。しかし、あなたは、エラーの原因となった変更かわかりません。だから、以前の作業コミットを魚に持っています。具体的に戻すにコミットします:

git checkout 8a0fe5191b7dfc6a81833bfb61220d7204e6b0a9 .

は、[OK]を、ので、あなたのための作品をコミットしています。これ以上のエラーがありません。あなたは、問題を正確に指摘しました。今、あなたがコミット戻って最新に行くことができます:

git checkout 792d9294f652d753514dc2033a04d742decb82a5 .

そして、それは(私の場合には、私は例Gemfile.lockを使用)、エラーの原因となった前に、特定のファイルをチェックアウト:

git checkout 8a0fe5191b7dfc6a81833bfb61220d7204e6b0a9 -- /projects/myproject/Gemfile.lock

そして、これはあなたが後になるまでエラーを実現することなくコミットで作成されたエラーを処理する一つの方法です。

HEAD切り離さモード?

をしたいです

あなたは戸建てHEAD(あなたが台無しに何もできないという意味)でコミット一定にX時間をロールバックしたい場合は、すべての手段によって、以下を使用します:

(あなたが戻って行くことを望むどのように多くのコミットとXを置き換える)

git checkout HEAD~X

すなわち。戻って1コミットます:

git checkout HEAD~1

ここ

これを行うには例があります
    cd /yourprojects/project-acme 


    git checkout efc11170c78 .

きのコミットidに関連コミットをする為のGitHub/BitBucket/Gitlab.その非常に簡単で、dirコミットid 5889575 その場合に戻りたいこのコードでその要求にタイプ

git checkout 5889575 .

これまでにその時点コード.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top