我创建了一个存储库,但是我不小心提交了我根本不想提交的文件。我想取消第一次提交。 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。这只是删除了所有文件,但我不想删除它们,所以我再次将其恢复。我现在有更多我想删除的提交。
我要取消此存储库中的所有提交,然后先添加.gitignore
,然后添加其他文件。提交只是本地的,我没有推动任何东西。第一次提交中的某些文件不得被推送到网上,因为它们包含分类数据。
答案 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
覆盖远程存储库中的内容。听起来这就是你想要的。