2012-05-31 11 views
7

私はgitとgithubの新人です。問題があります。元に戻す「このコミットにロールバックする」

私は小さなプロジェクトを管理するためにgithub for windowsを使用しています。最近自分のコードに加えたいくつかの変更を失ったと思います。私がしたことは:

  1. いくつかのファイルが変更されました。
  2. 誤って変更をコミットしました。
  3. コミットを元に戻しました。
  4. 次に、「このコミットにロールバックする」を押しました。

私が追加したいくつかの新しいファイルを含め、すべての変更は廃止されました。私はそれらを保存することはできますか?私はgit(コマンドライン)もインストールしているので、あなたが助けると思うコマンドを実行することができます。

答えて

7

gitの素晴らしい点の1つは、あなたが何か変わったことをしない限り、何かを失うことが本当に難しいということです。

あなたがする必要があることは、あなたがなりたい状態を表すポイントを見つけることです。

git logを調べて、01dbc4 ...ハッシュが返される時点であると判断したとします。これを行うには、次のようにします。

git reset --hard 01dbc4 

コミットされていない変更がある場合は、最初にそれらを隠す必要があります。

ここで、そのコミットに必要な余分なファイルがありませんし、後でコミットすると、少し複雑になります。しかし、マスターブランチを開始したいポイントに設定し、ブランチを新しいファイルを持つポイントに設定することができます。次に、新しいブランチの欠落した情報をマスターブランチにコピーまたは選択してマージして、マスターブランチが望むように見せることができます。あなたがブランチのポインタを移動しても、周りのGitのリセットを使用するときのように、上記--hardと孤立していること

注後にコミットし、あなたはgit reflogを調べ、それらにreseting、またはそれらを指すブランチを作成することによって、それらを取り戻します。

+0

ありがとう!それは完全に働いた! – nautilus7

+0

私の場合、git logは破壊されたコミットを表示していませんでした。 – Bulwersator

5

今(2013年3月)、Windows用のGitHubで、あなたが任意のGitのコマンドを入力することなく、コミットを取り消すことができます注:

見る "Undo Button in GitHub for Windows"

我々はアンドゥを追加しました破棄、コミット、ロールバック、およびマージのサポート:

Undo button

+0

2014年5月10日ごろにGitHub for Windowsの手順を説明してください。どのコミットにロールバックするのですか?ありがとうございます – Dave

+0

@Daveは、「変更を破棄する」エントリを持つエントリ(図に示すように)にコンテキストメニューが存在しないことを意味しますか? – VonC

+0

「変更を破棄する」とした場合、すべての変更を元に戻すか、またはそのリビジョンの変更のみを破棄するかは不明です。前者が意図されている場合は、「ロールバック」または「このリビジョンのすべての変更を破棄する」などと呼ばれるべきです。'コース、1年後には、それは修正されたかもしれない? – Dave

関連する問題