如何使用 git reset 在不丢失本地更改的情况下重置未推送的提交

Posted

技术标签:

【中文标题】如何使用 git reset 在不丢失本地更改的情况下重置未推送的提交【英文标题】:how to reset un-pushed commit without loosing local changes using git reset 【发布时间】:2022-01-04 08:08:00 【问题描述】:

我想将我的文件推送到一个还没有文件的新存储库(在 GitHub 中)。 我不小心提交了对 GitHub 来说很大的不需要的文件,因此我无法将任何内容推送到存储库。 我想在尝试再次推送之前重置提交。 我对如何正确使用有点困惑 git reset --soft/hard/mixed 当我正在寻找的最终结果是: 在我的本地存储库中没有更改,重置提交中的文件 - 这样我就可以再次选择要提交的文件。

【问题讨论】:

简短答案是git reset HEAD^,但请务必阅读一些关于不同模式的信息here。 我做到了:git reset HEAD~ 比我得到这个:致命:不明确的参数 'HEAD~':未知的修订或路径不在工作树中。 我猜是初次提交? 这可能是初始提交,但问题是我那里有不应该存在的文件,那么我该如何更改初始提交? 重新创建存储库。没有提交意味着没有历史记录,因此您只需要文件夹中的内容即可初始化。如果需要,本地配置和挂钩很容易转移。 【参考方案1】:

你可以用 git reset HEAD 来做到这一点,这个命令会改变你的头部提交

【讨论】:

我这样做了,但我得到了这个:致命的:不明确的参数 'HEAD~':未知的修订或路径不在工作树中。 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于如何使用 git reset 在不丢失本地更改的情况下重置未推送的提交的主要内容,如果未能解决你的问题,请参考以下文章

Git:如何在不丢失当前分支的情况下克隆项目?

在不丢失 Html 样式的情况下更改 NSAttributedString 中的字体大小 - Swift

撤消 git reset --hard origin/master [重复]

git reset 之后的恢复

如何撤消 git reset --hard HEAD~1?

(转)找回Git中丢失的Commit