取消新存储库中的第一次提交

时间:2017-03-08 19:10:47

标签: git github atlassian-sourcetree

我创建了一个存储库,但是我不小心提交了我根本不想提交的文件。我想取消第一次提交。 git reset HEAD~对我不起作用,我收到错误:

$ git reset --soft HEAD^
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

我试图做&#34;反向提交&#34;在Attlasian SourceTree。这只是删除了所有文件,但我不想删除它们,所以我再次将其恢复。我现在有更多我想删除的提交。

image description

我要取消此存储库中的所有提交,然后先添加.gitignore,然后添加其他文件。提交只是本地的,我没有推动任何东西。第一次提交中的某些文件不得被推送到网上,因为它们包含分类数据。

1 个答案:

答案 0 :(得分:1)

删除存储库,启动另一个存储库。

由于回购包含“分类数据”,因此从轨道上查看网站似乎是最好的。

Git repos很便宜,你的本地副本完全包含在.git目录中。如果你搞砸了第一次提交,请删除.git目录(保留其他文件)和git init新目录。

删除在线存储库并创建一个新存储库。新的在线存储库应该具有与现有本地存储库连接的说明; git remote add origin等。

使用git reset&amp; git amend

更普遍适用的方法是使用git reset。这允许您任意移动分支头。 git reset --hard origin/master会将master返回到您的第一次提交(origin/master恰好指向第一次提交,如果不是,则使用其提交ID)并丢弃后者。 --hard表示要重置暂存区域和工作副本(即磁盘上的文件)。

从那里你可以使用git commit --amend来改变之前的(即第一次)提交。这将改变之前的提交,而不是进行新的提交。这对于进行更改,甚至只是修改提交消息中的拼写错误很方便。

看起来你已经推动了第一次提交。由于您正在改变该提交,因此您将无法git push。您必须git push --force覆盖远程存储库中的内容。听起来这就是你想要的。