Android Studio中的DETACHED HEAD问题

17

我是Android Studio的新手,已经开始开发导航抽屉应用程序。

在提交代码时犯了一个错误后,我尝试使用版本控制的"检出修订"功能,现在由于"分离的HEAD",我无法将项目推送到Github。

我该如何解决这个问题?我的应用在模拟器中运行得非常好。

谢谢

6个回答

8
如果你已经做了很多更改并想要提交和推送在线,但突然出现了这个游离头问题,以下是你可以在Android Studio中为Git执行的步骤:
  1. 进入VCS -> Git -> Branches...
  2. 点击 +New Branch,只需输入任何临时名称。
  3. 然后将更改提交到新分支(不要立即推送,因为它会创建新的在线分支)。
  4. 再次进入VCS -> Git -> Branches...,现在选择带有游离头问题的以前的本地分支,并点击检查分支。
  5. 再次进入VCS -> Git -> Branches...,现在选择新创建的本地分支,并选择合并到当前分支。
  6. 合并成功后,请仔细检查您的代码是否是最新的。现在,你可以推送之前遇到过问题的分支而不会有游离头问题。如果此时单击提交,由于你已经合并了最新更改,所以不需要提交任何内容。所有你需要做的就是推送到线上。通过这样做,你可以避免仅为解决此问题而在线创建新分支。
  7. 为了清理目的,一旦你成功将分支推送到线上,只需再次选择新创建的本地分支并点击删除分支。

8

您可以前往VCS菜单,然后选择Git、Branches,在Git Branches对话框中点击本地分支下方的项目,然后检出分支并接受默认分支。 这将使您的项目连接到其默认分支,您就可以提交您的项目了。


0
为了解决分离头问题,您需要知道为什么会出现这个问题。它显示分离头是因为您多次合并项目(至少两次),只是在本地提交项目。您需要做的是每次合并项目时,将其本地提交以及提交到服务器分支。这将解决您的问题,就像解决我的问题一样。

0

我使用命令创建了一个分支,并将一个提交复制到该分支中。

git cherry-pick <commit number>

0

当你在Git中处于“分离头状态”时,这意味着你当前正在查看根据不在分支上的过去提交的历史记录。根据你的目标,需要发生一些事情。

如果你想在当前检出的版本中继续你的代码?如果是这样,你应该重新检出最近创建的提交,然后使用git revertgit reset撤消历史记录,以适合你的需求。

如果你只想回到最近的提交并像往常一样继续工作,git checkout <newest SHA>将完全可以胜任。


0

最简单的快速解决方案就是创建一个新分支并将当前版本推送到那里。 然而,这个解决方案并不是正确的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接