0

假设我有一个名为 repo1 的仓库

在这个 repo 中,我有 5 个修订版,其中 A 是最新的

A B C D E

假设我有一个工作区,其中包含修订版 B 的文件,但出于某种原因 git 认为我处于修订版 C。

我有兴趣拉下 git 元数据,以便我的工作区处于正确状态(例如 git 认为我有修订版 B)但我不想要这些文件

我的第一个想法是运行:

1) git pull -n

2) git reset --mixed B

但是,这会由于合并冲突而失败

我的第二个想法是运行:

1) git fetch -n

2) git reset --mixed FETCH_HEAD

3) git reset --mixed 修订版 B

这是最好的解决方案吗?

谢谢你的帮助。

4

1 回答 1

0

--mixed是重置的默认操作,因此您可以省略该标志。

如果您知道您的文件处于修订版 B 并且修订版 B 已经存在于 repo 中,您可以直接重置为该 SHA,无需获取:

git reset <sha>

如果提交不在 repo 中(例如,您手动复制了文件),那么您可以获取并重置它:

git fetch <repo-with-b>
git reset <sha>

这将使您的实际文件保持原样,但告诉 Git 您的存储库位于<sha>.

于 2013-12-16T20:16:23.710 回答