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