1

皆さん、

私はgitにスタッシュするのは少し新しいので、ここで基本的なものが欠けている可能性があります。これが私が行っていることです。

  • 私はマスターブランチにいて、ファイルapp / models/medicine.rbに取り組んでいます。同僚によってプッシュされたマスターから変更をプルしたいと思います。だから私はgitstashをします
  • 今、私はgit pull origin masterを実行します。これにより、すべての新しい変更がプルされます。
  • 今、私はgit stash popを実行します、それは私がそれらを修正するマージの競合があると不平を言います
  • git diff app / models / Medicine.rbを実行すると、diffに隠しておいた変更が表示されません。また、gitログを実行すると、自分の作業がどこにもコミットされていないことがわかります。

ですから、私が取り組んでいた変更がコミットされたように見えますが、それが起こるとは思っていませんでした。さらに作業してからコミットしたかったのです。それで、隠し場所についての私の理解は間違っていますか?何かに取り組んでいて、まだコミットする準備ができていないが、プルしてさらに作業を続けてからコミットしたいというユースケースがある場合はどうなりますか?これに適したgitプロセスは何ですか?また、もう1つの副作用は、現在、隠されている作業に問題がないことです。たとえば、ある時点で作業に戻りたい、または作業をチェリーピックしたい場合は、それを行う方法がありません。gitログにも表示されません。フィードバックをありがとうございます。

4

1 に答える 1

5

変更はコミットされませんが、ステージングされます。それらを表示するには、 を実行しますgit diff --cached。それらをアンステージするには、 を実行しますgit reset

于 2013-03-06T15:27:55.517 に答える