我已提交消息“主活动中的回收者视图”。头就在上面。我在没有看到警告的情况下切换到了一个新分支。我现在无法看到我提交的消息“主活动中的回收者视图”。如何检索与任何分支无关的提交? 请帮助我对 GitHub 非常陌生。
我的终端如下:
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git add .
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git commit -m "Recycler View in Main Activity"
[detached HEAD 35b478b] Recycler View in Main Activity
5 files changed, 96 insertions(+), 51 deletions(-)
rewrite app/src/main/java/com/example/worldclocktest/CitySelectedListAdapter.java (60%)
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git log
commit 35b478bf8761480eeed417d3fa8ae3bab44cfa36 (HEAD)
Author: Hizafa-Nadeem <hizafa.977@gmail.com>
Date: Thu May 6 04:44:13 2021 +0500
Recycler View in Main Activity
commit 6dfc1a1db723e268d967ebcf34a8dac45f41514b (Recycler-View)
Author: Hizafa-Nadeem <hizafa.977@gmail.com>
Date: Thu May 6 02:40:11 2021 +0500
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git push -u origin Recycler_View
error: src refspec Recycler_View does not match any
error: failed to push some refs to 'https://github.com/Hizafa-Nadeem/WorldClock-App-'
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git push -u origin Recycler-View
Enumerating objects: 115, done.
Counting objects: 100% (115/115), done.
Delta compression using up to 8 threads
Compressing objects: 100% (89/89), done.
Writing objects: 100% (115/115), 139.26 KiB | 1.00 MiB/s, done.
Total 115 (delta 19), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (19/19), done.
remote:
remote: Create a pull request for 'Recycler-View' on GitHub by visiting:
remote: https://github.com/Hizafa-Nadeem/WorldClock-App-/pull/new/Recycler-View
remote:
To https://github.com/Hizafa-Nadeem/WorldClock-App-
* [new branch] Recycler-View -> Recycler-View
Branch 'Recycler-View' set up to track remote branch 'Recycler-View' from 'origin'.
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git checkout cities_declared_in_activity_main
error: pathspec 'cities_declared_in_activity_main' did not match any file(s) known to git
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git checkout cities_declared_in_activitymain
error: pathspec 'cities_declared_in_activitymain' did not match any file(s) known to git
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git log
commit 35b478bf8761480eeed417d3fa8ae3bab44cfa36 (HEAD)
Author: Hizafa-Nadeem <hizafa.977@gmail.com>
Date: Thu May 6 04:44:13 2021 +0500
Recycler View in Main Activity
commit 6dfc1a1db723e268d967ebcf34a8dac45f41514b (origin/Recycler-View, Recycler-View)
Author: Hizafa-Nadeem <hizafa.977@gmail.com>
Date: Thu May 6 02:40:11 2021 +0500
first commit on Recycler View
commit 269b5fee830e7a26a1fabd008f60ff6b236cb111 (cities_declared_in_main_activty)
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git checkout cities_declared_in_main_activty
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
35b478b Recycler View in Main Activity
If you want to keep it by creating a new branch, this may be a good time
to do so with:
git branch <new-branch-name> 35b478b
Switched to branch 'cities_declared_in_main_activty'
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git status
On branch cities_declared_in_main_activty
nothing to commit, working tree clean
C:\Users\Dell\AndroidStudioProjects\WorldClockTest>git push -u origin cities_declared_in_main_activty
答案 0 :(得分:3)
要记住的事情:在 Git 中,分支只是一次提交的名称。它对它的行为方式还有其他一些影响,但仅此而已。出于多种原因,分支名称在 Git 中至关重要;一是他们保持提交活着。如果提交具有分支名称,或者是此类提交的父级,或者 那个 提交的父级...,则该提交保持活动状态。如果没有,它可能会死。幸运的是,它不会很快死去。
这里是您所做的事情及其含义的快速回顾!
% git add .
% git commit -m "Recycler View in Main Activity"
[detached HEAD 35b478b]
分离头模式意味着您所在的位置没有分支名称:您不是“在分支上”。在故事开始之前,你以某种方式进入了分离头模式并进行了提交。这并不违法,但非常不明智。我不知道你是如何或为什么对自己这样做的。
% git log
commit 35b478bf8761480eeed417d3fa8ae3bab44cfa36 (HEAD)
commit 6dfc1a1db723e268d967ebcf34a8dac45f41514b (Recycler-View)
所以看起来你在这个父链上至少有两个提交:你刚刚创建的分离的一个,以及它之前的 Recycler-View 分支提交。
% git push -u origin Recycler_View
error:
你弄错了分支名称。就在你面前!下次,尝试复制并粘贴分支名称。更好的是,切换到一个 shell,它可以让你的分支名称自动完成。
% git push -u origin Recycler-View
你的分支名称正确,然后推送。但是你推的是6dfc1a1。你还没有推送新的提交 35b478b,它仍然是分离的。
% git checkout cities_declared_in_activity_main
error:
没有这样的分支。
% git checkout cities_declared_in_activitymain
仍然没有这样的分支。为什么你甚至不询问分支名称是什么?该命令是(等待)git branch
!
% git log
找出真正的分支名称的一种愚蠢的方法,但它确实有效。
% git checkout cities_declared_in_main_activty
Warning: you are leaving 1 commit behind, not connected to
any of your branches:
Git 尽可能大声地警告您,您将失去对提交 35b478 的所有命名访问权限。它是分离的!
好的,但你已经做到了。这是一个问题吗?不!不是马上。请记住,提交不会很快消失。提交仍然存在。把自己收拾好,然后说
% git checkout 35b478
Presto,你丢失的提交又回来了!这一次,用它做一些合理的事情。一个分离的提交可以最终被删除,所以如果你不希望这种情况发生,拯救这个提交!最简单的第一步是,检查提交后,给它一个分支名称:
% git branch rescue
现在您可以决定如何处理您拯救的提交。我不知道你的意图,所以我不能就此给你建议。
答案 1 :(得分:2)
您的命令行显示您可以使用
为提交创建一个分支git branch <new-branch-name> 35b478b
这里,35b478b
是提交 ID。这意味着您也可以使用
git checkout 35b478b -b <new-branch-name>
没有分支的无头结账将是
git checkout 35b478b
你可以看到提交
git reflog
这会列出您访问过的提交,而不仅仅是您最近的历史记录。
你也可以用
git checkout origin/Recycler-View