所以我有以下情况:
我在本地提交了一些工作,而没有推送到远程存储库。我想将本地代码移到另一个分支,因为如果我拉,将进行一些修改,这些修改将破坏我在本地所做的所有工作。
这是旧分支上“ git status”的输出:
“在分支上,您的分支比'origin /'提前1次提交。(使用“ git push”发布您的本地提交)没有要提交的内容,工作目录更干净“
这是新创建的分支上“ git status”的输出:
“在分支上什么也没提交,工作目录干净”
Idd*_*ohn 11
就我而言,答案是:
git checkout -b new-branch
Run Code Online (Sandbox Code Playgroud)git checkout -
Run Code Online (Sandbox Code Playgroud)git reset --hard origin
Run Code Online (Sandbox Code Playgroud)如果只是一次提交,您只需执行
git reset HEAD~1
git stash
git checkout anotherbranch
git stash pop
Run Code Online (Sandbox Code Playgroud)
如果您想将其放在新的分支中,另一种方法是
git branch newbranch
git reset --hard HEAD~1
Run Code Online (Sandbox Code Playgroud)
如果在提交后进行了分支,则分支应包含要移动的提交。您可以使用进行验证git log,您应该将提交作为日志中的第一个提交。
在您不再希望进行提交的分支上git reset --hard HEAD~。这将删除分支中的提交并重置分支,以便您现在可以毫无问题地进行提取。(确保您的提交在另一个分支上,因为这样做之后您的提交将消失)。
如果提交不在您的另一个分支上,则可以删除该分支,然后使用来从原始分支再次创建该分支,git checkout -b <branch name>也可以将其樱桃拾取到您的分支中,git cherry-pick <SHA of your commit>从而在分支上复制该提交。然后,您可以按照上述步骤重置原始分支。
| 归档时间: |
|
| 查看次数: |
4721 次 |
| 最近记录: |