Git重置不工作

Git重置不工作,git,git-reset,Git,Git Reset,我进行了一次提交,提取并合并了一些更改,然后进行了第二次提交。当我想返回到第一次提交时,我运行了命令 git reset --hard <sha hash> git重置——硬 虽然响应是“HEAD is now at”,但我的代码看起来与运行该命令之前一样。通常情况下,它会改变我以前的状态,但看起来有些东西工作不正常。在重置磁头之前,是否需要运行其他命令以取消合并 额外信息 当我运行git status时,它会显示: app/assets/images/.DS_Store.or

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

git reset --hard <sha hash>
git重置——硬
虽然响应是“HEAD is now at”,但我的代码看起来与运行该命令之前一样。通常情况下,它会改变我以前的状态,但看起来有些东西工作不正常。在重置磁头之前,是否需要运行其他命令以取消合并


额外信息 当我运行
git status
时,它会显示:

app/assets/images/.DS_Store.orig未跟踪

我可以补充一下


根据<代码> GIT-ReFuff,在提交提交HASH1之前(我考虑“合并之前”),我进行了拉取。有一个用于pull的sha hash2(它

git log
没有显示)。当我挖掘hash1和hash2时,我看到了我所做的更改,并且可以从中重建我的原始代码。不过,这似乎很奇怪。如果我尝试将git reset重置为其中一个,则无法在合并之前获取代码。

我确信您在“git reset--hard”中输入的sha1值就是头部。 如果要将头部重置为第一次提交,应运行如下命令:

git reset --hard <first commit's sha1 value>

git reset--hard我不使用命令行进行重置,因为gitk(branch viewer)可以执行此操作。有时重置不起作用。然后我删除所有目录,只留下.git文件夹。经常发生无法删除某些工作文件的情况。这就是为什么git无法重置的问题。您必须关闭程序才能保留文件。

git reset --hard <sha-hash>
rebase
hash加在上面,或者
git cherry pick
你真正需要的提交

如果上述方法无效,您还应:

  • 确保您在正确的分支(
    git-branch-a
    )上测试它,而不是在分离的分支上
  • 查看git reflog
了解有关您的历史记录的更多详细信息
  • 运行
    git bull some/file
    以显示您的代码行被修改的版本,这有助于您跟踪提交代码时可能出现的问题
  • 如果您不喜欢以前进行的特定提交,您可以
    还原它

  • 我认为您应该输入第二次提交的SHA的前7个字符,而不是第一个字符。例如,您有2次提交:

    提交2123B232G2H3JJ232J323KKK23 作者: 日期:…晚上11:40

    提交abcdefb232g2h3kk239j183kkk24 作者: 日期:…晚上10:00

    如果要重置第一次提交,应输入:
    git reset abcdefb

    您确定要重置回正确的提交吗?根据git日志,是的git状态
    是否表示要提交更改?它们是什么?git状态显示app/assets/images/.DS_Store.orig未跟踪,我可以添加它。抱歉,但我认为您的问题中没有足够的信息来明确解释您看到的内容。可能获得第一次和第二次提交的SHA-1(
    git reflog
    可能会有帮助),然后使用
    git diff[hash1][hash2]
    查看它们之间的差异。然后尝试使用
    git checkout[hash1]
    git checkout[hash2]
    来查看您的工作是否直接发生了适当的更改。
    git reset --hard <sha-hash>
    
    git reset origin/master --hard