git reset - 混合FETCH_HEAD

时间:2013-12-16 20:12:56

标签: git version-control github fetch

说我有一个名为repo1的仓库

在这个回购中,我有5个版本,其中A是最新的

一个 乙 C d ë

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

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

我的第一个想法是运行:

1)git pull -n

2)git reset --mixed B

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

我的第二个想法是运行:

1)git fetch -n

2)git reset - 混合FETCH_HEAD

3)git reset - 混合版本B

这是最好的解决方案吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

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

如果您知道您的文件位于版本B且版本B已存在于repo中,则可以直接重置为该SHA,不需要提取:

git reset <sha>

如果提交不在回购中(例如,您手动复制文件),则可以获取并重置它:

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

这将保留您的实际文件,但告诉Git您的存储库位于<sha>指定的修订版本。