Git 前のバージョンに戻すには?

git-rollback.png

ローカルの場合

全部最新コミット状態に戻す
ローカルの変更をこっそりしまっておきたい場合はこれ

git stash

ローカルの変更をマジで捨てて良い場合はこれ

git checkout .

ある特定のファイルだけ元に戻したい場合

git checkout HEAD^ path/to/file.java

まだコミットしていない変更があって、ある特定のファイルだけ最新のコミット状態に戻したいときはこっち

git checkout HEAD path/to/file.java

HEADの^は、HEADの一個前という意味である

リモートの場合

Step1. git log でどこまで戻したいか確認

git log

戻したいバージョンのわけわかんない数字とアルファベットの羅列をコピーしておく

Step2. git revert 数字とアルファベットの羅列

git reset —hard 数字とアルファベットの羅列

これでok

git-revert ある特定リビジョン(過去にcommitしたバージョン)に戻すパッチを自動生成してコミットする
git-reset ある特定リビジョン(ryに戻す(戻したリビジョン以降を無かったことにする)

ローカルでresetした状態でpushしたら黒歴史commitを消すことができます!!!

git push -f origin ブランチ名:ブランチ名

-fは、force,強制的にって意味です
これをすると

Unstaged changes after reset:

と、ファイル名がずらずら出るはず

git checkout -f

でチェックアウト
するとこう出る

Your branch is behind 'origin/ブランチ名' by 15 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

次に、

git clean -f

で余計なファイルを消す

プッシュ前のまずいコミットを歴史から消し去りたい (git rebase -i)

直前のコミットであれば EGit でも何とかなるが、そうじゃないと EGit では難しい。
おとなしくコンソールで

git rebase -i

を打ったほうがいい。
直前のコミットの場合…
消し去りたい情報を削除する
パッケージエクスプローラから [Team] > [Commit]
ダイアログ右上の、三角に矢印がついたボタン (Amend Previous Commit) を押す
コミットする

遭遇したエラー

error: Your local changes would be overwritten by revert.
hint: Commit your changes or stash them to proceed.
fatal: revert failed

stash現在のブランチのワークツリーを一時的に保存するという意味

git stash save "message"

てかんじ

revertした後のEclipse

ぎょぎょっ!
mark.png
こんなマークがいっぱい。!!conflictしてるって意味らしい。
ファイルに付くマークに関してはeclipse-gitのページを参考に

それでもダメなら ある特定のバージョンをまるごとcloneする

git checkout ハッシュ値(または、タグ名、ブランチ名)

[http://keyamb.hatenablog.com/entry/2013/02/08/105556]

サポートサイト Wikidot.com