我一定是漏掉了什么,因为我已经阅读了有关重置、还原等所有文档,但我无法弄清如何将我的索引内容放入工作树中。(我从其他地方复制了 .git
文件夹,只想要一个“获取最新版本”的操作)。
git commit -m'for now'
git checkout -f
git reset --soft HEAD~
checkout
步骤,因为你的存储库没有工作树(即它仅由.git/目录组成),所以checkout将安排工作树反映HEAD
。HEAD
引用指向其父项,从而有效地放弃最后一个提交。提交仍然在DAG中,并通过reflog指向,如果您想查看它,则不是您分支的时间轴的一部分。这个步骤是一个软重置,这意味着Git将上次提交的更改放回索引中,并且不会更改工作树,使其与我们提交时的最后一个提交指向的HEAD
的状态不同。提交不是你的历史记录,但更改仍然存在于工作树和stage中。你尝试过使用 git clone /path/to/myproject.git
吗?
或者使用 git clone /path/to/my/copied/.git
git checkout -f HEAD
这将导致所有文件被强制检出,覆盖Git当前认为已删除的内容。HEAD也可以是任何引用(分支、提交ID等)。
git checkout-index
命令实现,但恐怕这并不是你真正需要的。 - JB.git checkout -f
。 - dani 'SO learn value newbies'