如何在git上添加补丁提交?

如何在git上添加补丁提交?,git,github,Git,Github,我在本地网站上做了一些承诺。但在那之后,我意识到我忘了在第一次提交时添加一些文件,所以我多次使用git reset-hard HEAD~4,比如HEAD~3和~1 之后,当我检查我的git状态时 0001-basic-info-change-from-Bizkoot-to-CogitoHub.patch 0002-change-in-admin-URL.patch 0003-change-password-of-DB.patch 在我的Gitk中,它不像以前那样显示树枝 我只想像在我的Gitk

我在本地网站上做了一些承诺。但在那之后,我意识到我忘了在第一次提交时添加一些文件,所以我多次使用git reset-hard HEAD~4,比如HEAD~3和~1

之后,当我检查我的git状态时

0001-basic-info-change-from-Bizkoot-to-CogitoHub.patch
0002-change-in-admin-URL.patch
0003-change-password-of-DB.patch
在我的Gitk中,它不像以前那样显示树枝

我只想像在我的Gitk中显示之前一样提交它。所有分支都会像以前一样显示。

git reset-hard将所有提交移回指定的点,在本例中为HEAD~4,并且还将删除您在这些提交中所做的任何更改。基本上就是把所有的工作都扔掉。 有时它非常有用,但在这种情况下它不是,所以小心使用它

为了修改旧的提交,您应该做些什么,本文将对此进行解释


由于您执行了硬重置,因此需要首先修复该问题。在大多数情况下,您可以“撤消”重置。请参阅以了解如何做到这一点。基本上,撤销重置就是重置到重置之前的历史点。

您可以尝试使用git reflog恢复旧的提交

假设您有以下输出:

$ git reflog
a0423b1 HEAD@{0}: reset: moving to HEAD~
8bba878 HEAD@{1}: commit: commit 2
a0423b1 HEAD@{2}: commit (initial): commit 1
您可以通过git checkout HEAD@{1}获得第二次提交


您真正想要的是在头4处创建一个新分支,添加您的文件,然后将此工作合并或重新设置为master。

您知道-hard的效果吗?