2

使用 MSYSGIT 历史浏览器,我签出了一个特定的提交。这是一个错误 - 我试图查看文件并认为我必须检查它们才能看到它们。

从那以后,我无法再向我的远程仓库(在 GITHub 上)推送任何提交。我有点理解,虽然不完全。[我承认不完全理解结帐的工作原理,请对菜鸟温柔。]

如何撤消该结帐并将其恢复到以前的状态?

如果我右键单击“签出”提交,我可以选择“删除此分支”。那会删除该提交的文件[坏]还是只是撤消签出?我在吠叫错误的树吗?

4

3 回答 3

7

我的理解是,您不小心签出了较早的提交,然后在您想要保留的内容之上进行了新的提交。首先,确保你有一个指向你当前工作的指针:

git checkout -b newbranch

然后,检查你以前的位置:

git checkout master

希望这会让你回到你的主线分支,你可以像往常一样推送到 GitHub。如果您想提取所做的更改,则可以合并并(一旦您满意)删除临时分支:

git merge newbranch
git branch -d newbranch
于 2009-08-30T10:25:43.820 回答
0

在 C++ 术语中,分支基本上是一个指针。

您可能想尝试移动您的分支以指向不同的提交。为此使用git reset

git checkout mybranch
git reset mypreviouscommit

这不会删除提交,但确实会mybranch“指向” mypreviouscommit。所以,任何有的东西mypreviouscommit都会有master

于 2009-08-30T09:46:10.013 回答
-1

如果您不介意丢失自上次拉取到 Github 以来所做的所有更改,您可以简单地删除您的目录并

git clone ...

在一个新鲜的,新的。

于 2009-08-30T11:23:57.867 回答