Git 检查旧的提交,并进一步进行新的提交
Git checkout old commit, and further make new commits
仅供参考:我正在使用 bitbucket 将我的 git 推送到(我知道不是很重要)。
我正在做一个项目,我在其中进行了更改,并推送到 origin master,才意识到 master 有一些重大错误,因此我在同一个 master 分支中检查了一个特定的旧提交,使用
git checkout commit_name
在那之后我开始进一步工作并不断添加和提交,现在我不知道如何保持以下新提交,以及不丢失早期(有问题的)master。基本上如何回到正轨。
P.S。我尝试使用 git push -u origin master
,但它 returns Everything up-to-date
,并且没有任何内容被推送到 bitbucket。
我猜你在 detached head
。当您执行 git checkout commit_name
时,您更新了本地存储库以签出 commit_name
的代码,但您不在任何分支上。你是自由泳,只能做有限的动作。您需要返回 master
分支。
git checkout -b branch_tmp
移动到新创建的分支 branch_tmp
git rebase master
在 master 之上应用你最后的提交
git checkout master
git merge branch_tmp
用之前完成并在 branch_tmp
上出现的提交更新你的 master
分支
git push origin master
git branch -d branch_tmp
清理您的存储库
在任何步骤中,我建议您查看历史记录以了解执行的不同操作。
您可以找到有关分离头的更多信息there
仅供参考:我正在使用 bitbucket 将我的 git 推送到(我知道不是很重要)。
我正在做一个项目,我在其中进行了更改,并推送到 origin master,才意识到 master 有一些重大错误,因此我在同一个 master 分支中检查了一个特定的旧提交,使用
git checkout commit_name
在那之后我开始进一步工作并不断添加和提交,现在我不知道如何保持以下新提交,以及不丢失早期(有问题的)master。基本上如何回到正轨。
P.S。我尝试使用 git push -u origin master
,但它 returns Everything up-to-date
,并且没有任何内容被推送到 bitbucket。
我猜你在 detached head
。当您执行 git checkout commit_name
时,您更新了本地存储库以签出 commit_name
的代码,但您不在任何分支上。你是自由泳,只能做有限的动作。您需要返回 master
分支。
git checkout -b branch_tmp
移动到新创建的分支branch_tmp
git rebase master
在 master 之上应用你最后的提交
git checkout master
git merge branch_tmp
用之前完成并在branch_tmp
上出现的提交更新你的 git push origin master
git branch -d branch_tmp
清理您的存储库
master
分支
在任何步骤中,我建议您查看历史记录以了解执行的不同操作。
您可以找到有关分离头的更多信息there