1. ホーム
  2. git

[解決済み] git-stash と git-branch の比較

2023-02-06 12:40:34

質問

以前のGitの質問 で、Daniel BenamyがGitのワークフローについて話していました。

私はmasterで作業をしていて、あるものをコミットした後、その作業を保留にしたいと思いました。いくつかのコミットをバックアップしてから、くだらない仕事を始める前からブランチしました。

彼は、現在の変更を失うことなく、作業状態を以前の時点に戻したかったのです。すべての回答は、さまざまな方法で、次のようなことを中心に展開されました。

git branch -m master crap_work
git branch -m previous_master master

と比べてどうでしょうか? git stash ? 私は少し混乱しています。 のように見えますが git stash が行うことは、すでにブランチングによって処理されているようです...。


@ ジョルディ・ブンスター : ありがとうございます、すっきりしました。私は、quot;stashing"は、軽量で名前のないブランチのようなものだと考えているようです。だから、stashにできることは何でも、branchにもできるけど、もっと多くの言葉がある。いいですね。

どのように解決するのですか?

'stash' はコミットされていない、" を取ります。 ダーティ 作業コピーにあるものを取り去り、それを隠して、きれいな作業コピーを残します。

これは実際にはまったく分岐しません。そして、隠したものを他のどのブランチの上にも適用することができます。あるいは、Git 1.6では、そうすることができます。

git stash branch <branchname> [<stash>]

を使えば、新しいブランチの上に隠し場所を適用することができ、すべて一つのコマンドで済みます。

つまり、stashは"にコミットしていない場合はとても有効です。 が間違っている ブランチにまだコミットしていない場合です。

すでにコミットしているのであれば、質問で説明したワークフローがより良い選択肢です。ところで、あなたの言うとおりです。Git は非常に柔軟であり、その柔軟性には重複する機能が伴います。