错误地致力于本地掌握。如何将更改移到分支?

Dov*_*Dov 0 git branch

我进行了许多更改,可能会破坏代码。我以为自己在分行,但是当我下定决心时却是主。有什么方法可以将4个本地提交移动到本地分支然后再推送?

Sri*_*911 10

您也可以尝试

git reset HEAD~
Run Code Online (Sandbox Code Playgroud)

这将恢复本地提交并恢复更改。然后创建一个新分支,提交并推送您的更改。


Jac*_*n W 5

按照您说的细节(4次提交),您可以执行以下操作:

git branch new-branch-name-here
# new commits on branch
git checkout master
git reset HEAD~4
# move HEAD (master) 4 commits back, commits are no longer on master
# note: that's a ~ (tilde, above your Tab), not a - (dash).
git push origin new-branch-name-here
# push new branch with correct commits to remote (assumed origin)
git push -f origin master
# if you already pushed master before, clear commits from remote
# otherwise, this can be skipped if master wasn't yet pushed remotely
Run Code Online (Sandbox Code Playgroud)

必须使用-f进行推送master,否则您的推送将被服务器拒绝。

通常,可以通过三个简单的步骤来更改Git中分支上的提交:

  1. 创建带有您的提交的新分支
  2. “重新缠绕”其他分支,以便不在提交上
  3. 将分支推送到远程(如有必要,使用-f