2017-03-09 11 views
2

git stashgit stash popはこの問題の良い解決法ですか?偶発的なブランチスイッチのGit stash

私はブランチBで作業していましたが、間違って何かが起こってしまったことがわかりました。ブランチAに戻って、さまざまな作業を続けました。

GitはブランチBに切り替える前にブランチAに私の新しい仕事をコミットしたいと思っていますが、できません。

ブランチA(間違ったブランチ)にいる間に、git stashを実行してブランチBに切り替えます(つまり、すべての作業を失うわけではありませんが、正しいブランチに置くことができます)正しいブランチ)、git stash popを実行しますか?そうすることによって災害に遭遇しますか?

私のGitプロジェクトをどのように爆破しないかはわかりません!

+0

完全性:ブランチAで作業をコミットし、コミットの先端から一時ブランチを作成し、ブランチAを開始した場所からハードにリセットします。その後、一時ブランチをブランチB – ckruczek

答えて

3

これは適切な動きのようです。 git stashを使用すると、矛盾を発見した時点で作業インデックスが保持され、コードを必要なブランチに安全に移動できます。

FYIと同じようにgit stash popは、隠線から索引に移動するだけでなく、隠されたものを削除します。私が100%確実でない状況での私の好みは、代わりにgit stash applyを使用することです。そのため、私がそれを削除するのに十分な安全性を感じるまで、私は隠していた以前の作業インデックスを常に取り出すことができます。

0

あなたの目的には、git stashが完璧だと私によれば、投稿はthis投稿が私の意見を確認します。

多分あなたは解決すべきいくつかの矛盾を持つことができます。

私はこれがあなたに役立つことを願っています。

0

あなたの現在の状況は、git stashを使用する正当な理由のようです。あなたは次のように言った:

私はブランチBに切り替えることができます前に、私はブランチAに私の新しい仕事をコミットしたい、私はすることはできません。

git stashが実際にあなたが枝を切り替えることができ、それらをリセットする前に、作業ディレクトリとステージを維持するためにコミット(時には3)を行う、信じられないかもしれません。

実際にを一時的ににすることができます。次に、支店Bに切り替えると、そこで働くのですか?支店Aに戻ると、続行できます。これは、HEADはブランチAでのコミットの書き換えになり、効果的にあなたの一時的な未完の仕事の痕跡は存在しません

git commit --amend 

:それはあなたの仕事をコミットする時間を出たとき、あなたは実際に一時的に経由してコミット修正することができますそこにいた。

+0

「2つのコミット」にマージします。それらは見えませんか? –

+1

@SupunWijerathneそれらを見る方法はありますが、これを行うことは一度もありません。私の指摘は、 'git stash'がコミットを使ってあなたの現在の状態を保持するということです。 –

+0

興味深い情報:)あなたはそれらを見るコマンドを言うことができますか?とにかく、それらのコミットが履歴に表示されていない場合、私が推測する害はありません。ではない? –

関連する問題