私はコードベースを壊しました。最後のコミットにロールバックしたいのですが、最初に壊れたバージョンを保存したいので、後で分析することができます。この状況ではどのようなコースが最適ですか?Git保存と復旧
(私は実際にちょうどそれは長い1日だったいくつかの手holding-を探して、何かを試していませんし、私はこれを台無しように感じることはありません。)
私はコードベースを壊しました。最後のコミットにロールバックしたいのですが、最初に壊れたバージョンを保存したいので、後で分析することができます。この状況ではどのようなコースが最適ですか?Git保存と復旧
(私は実際にちょうどそれは長い1日だったいくつかの手holding-を探して、何かを試していませんし、私はこれを台無しように感じることはありません。)
することができますいくつかのものがありますdo:
おそらく最も良いことは、この壊れたコードをコミットする別のブランチを作成し、そのブランチにコミットすることです。
git checkout -b my-broken-branch # creates a new branch called my-broken-branch
# commit as usual...
git checkout - # return to the last branch you were on
あなたは、戻ってそのコードに行きたい
はgit checkout my-broken-branch
がそのブランチに切り替えるために行います。あなたが行うことができます
迅速な事はあなたの作業内容を保存しますgit stash
、ですし、後でそれを再適用することができます
git stash
あなたが戻ってそれらの変更を取得したい場合は、あなたがgit stash apply
を行うことができます最後に行った変更を適用します(ただし、隠しリストに情報を保存します)。
コメントに記載されているように、git stash pop
を行うこともできます。これにより、最小限の変更が適用され、スティッシュリストから削除されます。
stashingでもっと多くのことができます。なぜなら、複数のstashを行い、それらを選択的に適用できるからです。あなたはスタッシュ上の深い多くを取得したいとき
はここで、より詳細な説明です:http://gitready.com/beginner/2009/01/10/stashing-your-changes.html
あなたがコミットまたはこの壊れたコードで新しいブランチを行うことができます。その後、作業コードをチェックアウトします。
git log -1
コミット名(shaコード - 最初の7文字にすることができます)をメモしてください。
git checkout -b broken
git add -A
git commit -m "Broken code"
戻るあなたのブランチに壊れたコードのための新しいブランチを作成し、作業コードチェックアウト :
git checkout featureX
git checkout abc1234
これを行うもう一つの方法は、あなたの変更を隠しておくと、あなたのコードをチェックアウトすることです。その後、ファイルをポップして作業することができます。あなたは古いもの
コミットシャーを使用しないのはなぜですか? 'git checkout -'は前のブランチをチェックアウトします。 –
2番目のブロックが表示されたら、ブランチのチェックアウトとコミットの2番目のチェックアウト(文字と数字の短いシーケンス)が表示されます。 – rcdmk
破壊的なコマンドを与えた後、コマンドを与えた後の作業*を保存するための指示は賢明ではないようです。 –
注通常、 'Gitのスタッシュにリセットする前にちょうどレポにそれをコミットし、
をあなたの現在のバージョンを保存するには: –
@AndrewMarshall - true、true - これはすでにヤリンの情報過負荷になっている場合、どれだけの情報を捨てなければならないか、あまりにもわかりませんでした。 – birryree
理解しやすい。また、あなたは答えがあるので、あなたのコメントを削除することもできます。 (ああ、 'git checkout-'はおそらく 'git checkout master'よりも優れています)、 –