检查到另一个分支后丢失的文件

时间:2012-07-23 12:03:23

标签: git git-stash git-checkout

我想将相同的变更集应用到两个不同的分支上。

这就是我的所作所为:

git init
touch README
git add README
git commit -m "initial"

git branch other

touch file2
git add file2
git stash

git checkout other
git stash apply

git checkout master
git stash apply
git stash drop

这很有效。 file2存在于两个分支上。但是如果我换到另一个分支然后又回到master,那么master2就不再存在了!它为什么会发生,我该怎么办呢?我也有一个限制:在应用隐藏更改后,我无法在master分支上调用git commit。

git version 1.7.11.msysgit.0

2 个答案:

答案 0 :(得分:2)

git stash apply仅将更改应用于工作树和索引,到存储库。因此,当您在提交之前git checkout使用不同的分支时,您将丢失这些本地修改。如果您希望它们在该分支上持久存在,则 提交分支。

答案 1 :(得分:0)

这适合我。

应用相同变更集的更好方法可能是:

  1. git commit您在master上的变更集。
  2. git checkout other
  3. git cherry-pick master