【发布时间】:2016-12-22 09:29:54
【问题描述】:
我知道这已经在这里讨论了很多。我对 git 及其分支复杂性完全陌生。尽管我浏览了几个线程,但我对其中使用的术语感到不舒服。因此,我正在寻找一些易于理解的逐步帮助。我试图解释我的实际情况以及我在寻找什么。
我有一个名为 css-merge-2016 的分支,从最近几天开始我一直在推送我的提交。现在我需要恢复到特定的提交。我也不想保留我在工作目录中所做的任何更改。如果一切都回到我在特定提交之前的位置,这将有助于我的目的。
我做了git checkout <commit_number>,这表明我在DETACHED HEAD。然后我输入了git checkout css-merge-2016,这是我用来推送更改的分支。但是当我运行 git branch 时,它仍然显示以下内容:
subrara@subrara-desktop:/var/www/localsite.com/local.main.drupal$ git 分支
*(与 f996a78 分离)
css-merge-2016
大师
我再次检查了git checkout <commitnumber>,它不再向我显示DETACHED HEAD 消息,而是说
HEAD 现在位于 f996a78... 已从 customtheme/sass/pages 中删除未使用的 SCSS 文件已删除文件:pages > _home.scss 规则合并到 base/sass/all/pages/_home.scss
我需要我在 f996a78 被丢弃并且我的本地 repo 回到 f996a78 之后所做的所有提交。这是可能吗?如果是,如何?请建议。我完全被卡住了!
更新:
如果我在这个阶段运行git status,我可以看到
HEAD 在 f996a78 处分离
未为提交暂存的更改:
(使用“git add/rm ...”更新将提交的内容)
(使用 "git checkout -- ..." 丢弃工作目录中的更改)
然后是一长串红色文件列表,其中一些标记为modified,一些标记为deleted。
【问题讨论】:
标签: git git-branch git-checkout