Git:忘记提交,然后重新提交

Git:忘记提交,然后重新提交,git,version-control,rebase,Git,Version Control,Rebase,TL;DR使git忘记在master之前对本地的挂起提交 大家好 我有一个git设置。以下是逐步解决的问题: 创建具有10+MB文件的子项目 git添加。 git commit-a-m等等。 找出这个文件根本不应该在Git中。 通过添加以下行largefiledir来修改.gitignore/ 所以,现在我的git比master领先了一步。我希望git忘记这个提交,然后重做git添加/git提交过程就像以前从未见过更新的文件一样,同时保留修改后的.gitignore文件 我到底该怎么做?我为我的

TL;DR使git忘记在master之前对本地的挂起提交

大家好

我有一个git设置。以下是逐步解决的问题:

创建具有10+MB文件的子项目 git添加。 git commit-a-m等等。 找出这个文件根本不应该在Git中。 通过添加以下行largefiledir来修改.gitignore/ 所以,现在我的git比master领先了一步。我希望git忘记这个提交,然后重做git添加/git提交过程就像以前从未见过更新的文件一样,同时保留修改后的.gitignore文件

我到底该怎么做?我为我的问题道歉,但我遇到了一些关于使用git rebase的帖子,上一次我尝试使用git rebase时,我扔掉了我的工作目录,再次从master那里签出


非常感谢您的帮助。

首先,您应该清理工作目录,删除未跟踪的文件。如果您现在不提交更改,请忽略。然后使用git状态再次检查工作树是否干净

然后你可以用

git reset HEAD~

它会将头部重置为上一次提交,同时将子项目保留为git repo中未执行的文件。

如果您仍然没有在远程推送提交,您可以这样做

git reset HEAD~
确保执行git状态并检查它是否干净

此外,最好在提交更改并将其推送到远程存储库之前,从工作分支中git拉取更改和git重新基址


您可以参考此链接

以避免您的pb丢弃我的工作目录。不要忘记,您可以在执行任何操作之前创建一个分支,因此您只会影响该新分支。如果您对结果不满意,请删除分支,并且您的旧工作分支仍在此处:。所以你可以用很少的成本做很多的尝试。可能是重复的