将本地主分支合并到远程子分支

时间:2019-11-06 04:31:02

标签: git github gitlab

我从master分支中克隆了一个存储库,并做了很多修改。突然我想起我正在使用master分支,我想将其提交到新创建的远程分支而不是master分支。实际上,我对git非常陌生。请帮助我,谢谢

2 个答案:

答案 0 :(得分:3)

如果您更改了错误的分支,请执行git checkout -b newBranchName。 这会将所有更改移至名为newBranchName

的新分支

然后git branch查看您当前正在使用哪个分支。

如果这是newBranchName,请执行

git add . //stages all changed files
git commit -m "any message here" //commit with a message
git push -u origin newBranchName //push local branch to remote with name newBranchName 

执行此操作会将您的本地分支推送到名为newBranchName的新远程分支

现在执行git checkout master会再次将您带回到本地主分支。

通过git branch

交叉检查您当前在哪个分支

如果显示的母版为绿色或*master,请执行 git reset --hard HEAD以还原您在本地所做的更改。

重置后,本地主分支将与远程​​主分支完全相同。

答案 1 :(得分:2)

这是常见的工作流程错误。一个简单的选择是从master中的当前点创建一个新分支,然后在开始工作之前将本地master分支还原到该点:

# from master
# git commit any outstanding changes
git branch feature
git reset --hard HEAD~2   # replace 2 with the actual number of commits you did make

这假设您在意识到自己位于错误的分支之前,已对本地master分支进行了两次提交。硬重置命令只是删除那些提交,但是这些提交现在仍然是feature分支的一部分。现在,您可以将feature推到遥控器上。