我刚刚发现我犯了一个大错误。当我打算在master
分支中进行更改时,我在feature-x
分支中进行了几天的更改。
如何将当前分支(主)中的所有更改切换到feature-x
分支?
我也希望master
分支处于干净状态。 (当我在master上执行git status
时,它应该不会显示任何更改,但是当我在feature-x上执行git status
时,它应该显示我到目前为止所做的所有更改。
答案 0 :(得分:3)
你可以
git stash
(保存正在进行中的工作)feature-x
请参阅“How to cherry pick a range of commits and merge into another branch”。master
to an older commit。reset --hard
)feature-x
和git stash pop
,因为您的git状态可以取回所有当前的更改假设您master
上的最后一次提交所有都属于feature-x
。
如果这些提交与某些提交混合在一起,如hoppjerka在the comments中建议的那样,您将使用交互式rebase:
git checkout master
git rebase -i {master@"3 days ago"}'
你会把那些你不想要的东西丢给主人。
我不得不说我还没有提交。当前在主服务器中的所有更改都以git状态显示。所以我只需要移动更改
然后
git stash
git checkout feature-x
git stash pop