使用 MSYSGIT 历史浏览器,我签出了一个特定的提交。这是一个错误 - 我试图查看文件并认为我必须检查它们才能看到它们。
从那以后,我无法再向我的远程仓库(在 GITHub 上)推送任何提交。我有点理解,虽然不完全。[我承认不完全理解结帐的工作原理,请对菜鸟温柔。]
如何撤消该结帐并将其恢复到以前的状态?
如果我右键单击“签出”提交,我可以选择“删除此分支”。那会删除该提交的文件[坏]还是只是撤消签出?我在吠叫错误的树吗?
我的理解是,您不小心签出了较早的提交,然后在您想要保留的内容之上进行了新的提交。首先,确保你有一个指向你当前工作的指针:
git checkout -b newbranch
然后,检查你以前的位置:
git checkout master
希望这会让你回到你的主线分支,你可以像往常一样推送到 GitHub。如果您想提取所做的更改,则可以合并并(一旦您满意)删除临时分支:
git merge newbranch
git branch -d newbranch
在 C++ 术语中,分支基本上是一个指针。
您可能想尝试移动您的分支以指向不同的提交。为此使用git reset
。
git checkout mybranch
git reset mypreviouscommit
这不会删除提交,但确实会mybranch
“指向” mypreviouscommit
。所以,任何有的东西mypreviouscommit
都会有master
。
如果您不介意丢失自上次拉取到 Github 以来所做的所有更改,您可以简单地删除您的目录并
git clone ...
在一个新鲜的,新的。