2017-03-09 6 views
0

git stashgit stash popはこの問題の良い解決法ですか?git stash/git stash popは間違ったブランチスイッチでいいですか?

私はブランチBで作業していましたが、何かが誤って起こってしまって、私に知らないブランチAに戻ってきました。

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

ブランチA(間違ったブランチ)にいる間に、git stashを実行してブランチBに切り替えます(つまり、すべての作業を失うわけではありませんが、正しいブランチに置くことができます)正しいブランチ)、git stash popを実行しますか?そうすることによって災害に遭遇しますか?私の仕事のすべてが正しい支店で即座に行われ、私は通常通りコミットしてプッシュできますか?

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

This post私の質問にはお答えできますが、それは最新ですか?また、そのポストから:

また、現在人跡未踏隠しておく(新しく追加された)ファイル、 引数を追加-u

コミットされていないと/人跡未踏新しく追加されたファイルの違いは何ですか?コミットされていないファイルが多かれ少なかれ「新しく追加されましたか?

答えて

2

これはまさに隠しのためのユースケースの1つです。変更されたファイルが2つのブランチ間で異なっていなければ、ブランチを隠すことなくブランチを切り替えることができます。しかし、Gitはブランチスイッチがあなたの変更のいくつかを上書きしてくれるのを見て、強制しなければそれを拒否します。

だから、あなたは隠して、ブランチを切り替えて、隠しポップをポップします。おそらく解決できるマージ競合が発生します。これを正しく実行すると、すべての作業が終了し、正しいブランチをテストしコミットできます。

新しいファイルをローカルに作成し、切り替え先のブランチに同じファイルが追加されている場合は、スイッチがローカルファイルを上書きするという問題もあります。このために、未追跡のファイルを隠すことも役立ちます。

その中でuntrackedファイルとuncommittedファイルの違いは、未追跡ファイルはGitにはまだ知られておらず、コミットされていないファイルはGitがすでに追跡しているファイルですが、追跡されていないファイルも当然コミットされません。

関連する問題