gpt4 book ai didi

Git 重置不起作用

转载 作者:太空狗 更新时间:2023-10-29 13:14:46 26 4
gpt4 key购买 nike

我进行了一次提交,提取并 merge 了一些更改,然后进行了第二次提交。当我想回到第一次提交时,我运行了命令

git reset --hard <sha hash>

虽然响应是“HEAD 现在位于 ”,但我的代码看起来与运行该命令之前一样。通常,它会更改为我之前的状态,但看起来有些地方无法正常工作。在重置 head 之前,我是否需要运行不同的命令来取消 merge ?


额外信息

当我运行 git status 时,它说:

app/assets/images/.DS_Store.orig is untracked

我可以添加它。

根据 git reflog,我在提交 hash1(我认为是“merge 前”)之前 pull 了。有一个用于 pull 的 sha hash2(git log 没有显示)。当我挖掘 hash1 和 hash2 时,我看到了我所做的更改,并且可以从中重构我的原始代码。不过,这似乎很奇怪。如果我尝试 git reset 到它们中的任何一个,我无法从 merge 之前获取我的代码。

最佳答案

:

git reset --hard <sha-hash>

在以下情况下不起作用:

  • 您正在尝试重置未跟踪的文件(它们不是您的 git 存储库的一部分),
  • 一些属性被你的 git 规范化文件覆盖 ( .gitattributes ),
  • 您使用的散列值有误,或者散列值是您更改后的。

也许解决方案是通过以下方式返回远程分支上的内容:

git reset origin/master --hard

rebase 在它上面散列或 git cherry-pick 您真正需要的提交。

如果以上没有帮助,您还应该:

  • 确保你在正确的分支上测试它(git branch -a),而不是在分离的分支上,
  • 检查 git reflog 以获取有关您的历史记录的更多详细信息,
  • 运行 git blame some/file 以显示您的代码行在哪个修订版中被修改,这有助于您跟踪提交您的代码时看起来与您不期望的问题,
  • 如果您不喜欢之前所做的特定提交,您可以还原它。

关于Git 重置不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15540862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com