首页 > 解决方案 > 如何返回 GitHub 的一个点并且仍在 Android Studio 的 master 分支中?

问题描述

我在 Android Studio 3.3.1 的项目中使用 GitHub。

我在本地master分支中编写代码并将它们推送到远程origin/master

Submit_3 Image 是我的最新作品并提交结果快照。

发现Submit_1 Image snapshot之后的代码有问题,所以希望返回Submit_1,写新的代码。我希望我仍然可以在 master 分支上做新的工作,我该怎么办?

顺便说一句,目前我使用Checkout Revision命令返回 Submit_1(参见当前图像),并为 Submit_1 创建一个临时分支,然后切换到分支并合并临时分支。但是我发现结果就像 Result Image is the same Submit_3 Image,为什么?

提交_3 图片 在此处输入图像描述

提交_1 图片 在此处输入图像描述

当前图像 在此处输入图像描述

结果图像 在此处输入图像描述

标签: android-studiogithub

解决方案


合并 temp 后得到相同结果的原因是因为您基本上合并了 master 中的内容(包括错误的内容)和 temp 中的内容;因此,同时拥有错误和正确的代码。

解决您最初的问题:

  1. git checkout master => 转到 master 分支
  2. git log -n [some number] => 显示提交信息列表;例如。git log -n 5 将显示最后 5 条提交消息。
  3. 找到您要返回的提交的提交号。复制它。
  4. git reset --hard [commit number here] => 这会将 master 返回到您在提交编号中选择的位置。小心,这将清除提交后的所有内容。
  5. 我不记得你是否需要 git push 或者它为你做。通过执行 git status 进行检查
  6. 继续编写您的代码。如果你在 temp 中有新的东西,此时,如果你做 git merge temp。它会得到你的新东西,并且不会有以前在 master 中的错误代码。如果出现任何问题,请执行我上面描述的操作以返回任何提交。

祝你好运!

另外,这里的官方文档:https ://git-scm.com/docs/git-reset


推荐阅读