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 分支。

  1. git checkout -b branch_tmp 移动到新创建的分支 branch_tmp
  2. git rebase master 在 master
  3. 之上应用你最后的提交
  4. git checkout master
  5. git merge branch_tmp 用之前完成并在 branch_tmp
  6. 上出现的提交更新你的 master 分支
  7. git push origin master
  8. git branch -d branch_tmp 清理您的存储库

在任何步骤中,我建议您查看历史记录以了解执行的不同操作。

您可以找到有关分离头的更多信息there