将存储应用于不同的分支

时间:2016-05-24 15:22:43

标签: git git-stash

我不小心在错误的分支上工作。现在我想将所有更改传输到正确的分支。

如果我存储更改并将它们应用于正确的分支,它是否只会将未提交的更改添加到正确的分支或每个更改/提交来自错误的分支,而这些更改/提交在正确的分支上不存在?

例如

错误的分支有:

  • 提交

  • 未提交的更改b

正确分支

  • 提交c

如果我在错误的分支上执行git stash并且git将stash应用于正确的分支,它是否会将提交转移到正确的分支?

5 个答案:

答案 0 :(得分:12)

我会做一个藏匿,然后重置(混合使你不会丢失更改)提交,藏匿,然后更改为正确的分支并弹出两个stashes。

git stash save "b"
git reset HEAD~
git stash save "a"
git checkout correct-branch
git stash pop
git commit -m "a"
git stash pop

答案 1 :(得分:5)

如果您的分支尚未存在:

  • git stash branch" new_branch"

若是:

  • git stash branch" temp_new_branch"
  • git add"您的更改"
  • git commit
  • git checkout"您想要的分支以申请藏匿"
  • git merge" temp_new_branch"
  • git push
  • git branch -d" temp_new_branch"

答案 2 :(得分:2)

解决方法

  1. 使用所需的更改进行提交。
  2. 结帐到您希望更改的分支。
  3. 从该分支git cherry-pick 23h123kjb(< - 将此哈希值替换为特定于您要引入的提交的git log中的哈希值)
  4. 利润!

答案 3 :(得分:2)

不,不会。提交没有放入Stash。 我有时也只是在我的更改未提交和取消的情况下切换分支,它也可以工作(不确定是否在每种情况下)。

答案 4 :(得分:0)

你还可以做什么:

  • 在'错误'分支上创建补丁。
  • 放弃更改
  • 切换到正确的分支
  • 在该分支上应用补丁