我在staging的基础上创建了一个新的分支。Im 3-4提交,并意识到我需要从master分支而不是staging。我如何更改我的原始分支,同时仍然保留我的工作/提交?
发布于 2016-05-28 00:09:54
git rebase --onto NEW_SOURCE_BRANCH FIRST_COMMIT_BEFORE_YOUR_WORK
NEW_SOURCE_BRANCH是你想要分支的地方
这将倒回你在FIRST_COMMIT_BEFORE_YOUR_WORK之后的提交,然后它会将它们重新放到NEW_SOURCED_BRANCH上,然后把你放到那里,在这一点上,你可以创建这个工作的一个新分支,或者硬重置你的旧分支。
注我会说使用源/主作为FIRST_COMMIT_BEFORE_YOUR_WORK,但是主很可能已经不在那里了;但是找到任何一种方式都很容易。
发布于 2016-05-28 00:03:24
简单的方法:
git log --oneline -4 #find all the commit hashes you want to get
git checkout origin/master
git checkout -b $newbranch
git chery-pick $A $B $C $D您的历史记录是ABCD,因为在第一次提交时是A,然后是B,依此类推。
从你的临时分支中挑选你需要的散列。您今天不会动态地发现您的更改,因为您只有3-4个提交,复制散列,并将更改应用到您的新分支。
https://stackoverflow.com/questions/37487717
复制相似问题