2011-12-19 15 views
11

git rebaseを使用してコードを同期させると、git stashは現在の作業を保存し、最新のコードをmasterからフェッチした後、git stash popを使用してコードとマージできます。git stash pop vs git rebase

はシーケンスがあるとします

  • git stash、私の現在の仕事はすなわち、その後、git pull master
  • git checkout master
  • を保存している私は、マスター
  • git checkout mybranch
  • git stash pop
から最新のコードをフェッチしている、すなわち、

私はgit stash popの代わりに
git rebase masterの代わりに、結果が同じかどうかは私の仕事を更新されたコードとマージすると思いますか?

あなたのご提案とご支援をお待ちしております、ありがとうございます。

答えて

12

stashは、まだコミットされていない変更を保存するためのものです。たとえば、未完了の作業をしていて未完成の作業をコミットせずに何か他の作業をしたい場合は、後で使用するために格納するためにstashを使用します。

ただし、完成した作業を含む実際のコミットがある場合は、git mergeまたはgit rebaseのいずれかを使用して、それらのコミットを履歴にマージ/リベースします。

+0

この機能の存在を実感してください!私はいつもリベースしています..どんな恥です! ありがとうございました:) – nonintanon

+0

'git merge'と' git rebase'の使い分けの詳細はこちら:http://stackoverflow.com/a/804156/2104168 – cjsimon