将存储应用于不同的分支

Mee*_*tat 15 git git-stash

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

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

例如

错误的分支有:

  • 提交一个

  • 未提交的更改b

正确的分支有

  • 提交c

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

小智 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
Run Code Online (Sandbox Code Playgroud)


mig*_*lfg 7

如果您的分支还不存在:

  • git stash分支“ new_branch”

如果有:

  • git stash分支“ temp_new_branch”
  • git添加“您的更改”
  • git提交
  • git checkout“您希望的分支以应用隐藏”
  • git merge“ temp_new_branch”
  • git推
  • git branch -d“ temp_new_branch”


dYa*_*ale 6

解决方法

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

  • 此解决方案的问题在于您最终将不相关的工作提交到第一个分支! (2认同)
  • 不会称其为“问题”。可以轻松重置到第一个分支上的先前提交。 (2认同)