の乱用は、私がよく遭遇する最も一般的な "元に戻すのが難しい"エラーです。git stash pop
は常にgit stash
で元に戻すことができません。考えてみましょう:
git init /tmp/trash && cd /tmp/trash # make a new repo
echo A > A # create a file
git add A
git commit -m "Initial commit" # add and commit it
echo B > A # ... now change it
git stash # ... and stash it
echo C > A # and change it and commit it again
git add A
git commit -m "Another commit"
git stash pop # now pop the stash
pop
がA
を自動マージしようとすると、競合がスローされますが、あなたが戻ったばかりのポップのうち、再びgit stash
を押すことですることはできません。これはかなり簡単な例ですが、頻繁な変更を頻繁にしていて、分岐した分岐を頻繁に切り替えて途中でポップすると、厄介な箇所に入るのは簡単です。私はgit stash drop
も永久的だと信じています。間違った隠しを落とすとセーフティネットはありません。
通常、stash
は、次のように設計されています。別のブランチにホップするための汚い作業インデックスを隠し、バグを修正し、コミットし、プッシュして元の状態に戻します。あなたが多くの支店で多くの変更を管理するためにそれを使用しようとすると、必然的に大きな注意を払わずにあなたを噛まなければならなくなります。
この点は分かりません。 – Mat
この質問やそれに類似する点を私は理解しています。本質的に、それは "どこでドラゴンになるのですか?"この質問は「建設的ではない」とは遠く離れていますが、プログラマーズ・スタック・エクスチェンジにとってはより適しています。新しい技術を使い始めるとき、開発者はしばしばドラゴン、落とし穴、ブービートラップがどこにあるか知りたいと思うことがあります。 –