我在master分支上完成了一些工作(忘记在启动之前创建新分支)。现在,我希望这个代码存在于我的新本地分支上,将master分支重置为我工作之前的状态,然后将我的新本地分支推送到新的远程分支。有帮助吗?如果我不够清楚,请告诉我。
答案 0 :(得分:0)
首先从master中创建一个新分支
切换到主git checkout master
并结帐到新分支git checkout -b new-branch
如果您有一些未提交的文件而不是提交它们,请切换回master并转到您要回滚的提交,在与工作相关的提交之前应该在新分支上完成
使用git reset commit-hash
或git reset HEAD~2
回滚2次提交(使用git log
可以在日志中看到提交哈希),现在只需将当前本地头推送(强制)到HEAD在原点git push --force
会有很多上传文件,因为它们位于新分支中,您可以使用' git reset --hard` 非常苛刻来丢弃它们因为这将删除所有文件更改这些文件,最好先切换到新分支并检查所有更改是否存在
答案 1 :(得分:0)
由于您已经说过您还没有推送到远程,我建议先在master分支上执行混合(默认)重置,然后再创建一个新分支。
我发现如果他们使用哈希重置而不是使用 head~x 方法,那么通常会获得正确的提交。因此,运行git log
并找到要回滚的提交并复制该commit-hash。
然后git reset commit-hash
将更改删除到您的工作目录中。现在创建一个新分支并提交这些更改。 git checkout -b new-branch; git add . && git commit -m "some message"
现在当你回到主人的时候,它就会出现在你想要的地方,可以推到你的遥控器上。