我进行了许多更改,可能会破坏代码。我以为自己在分行,但是当我下定决心时却是主。有什么办法可以将4个本地提交移动到本地分支然后再推送?
答案 0 :(得分:3)
按照您所说的细节(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
需要-f
来推送master
,否则您的推送将被服务器拒绝。
通常,可以通过三个简单的步骤在Git中更改分支上的提交:
-f
)答案 1 :(得分:1)
您也可以尝试
git reset HEAD〜
这将还原本地提交并恢复更改。 然后创建一个新分支,提交并推送您的更改。
答案 2 :(得分:0)
您应该能够只创建新分支,然后将master
重设为正确的提交。
git branch oopsies-feature-branch
git branch -f master THE_RIGHT_COMMIT_FOR_MASTER