取消新存储库中的第一次提交
Cancel first commit in new repository
我创建了一个存储库,但是我不小心提交了我根本不想提交的文件。我想取消第一次提交。 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>...]'
我试图在 Attlasian SourceTree 中做 "reverse commit"。那只是删除了所有文件,但我不想删除它们,所以我又恢复了它。我现在有更多要删除的提交。
我想取消此存储库中的所有提交,然后先添加 .gitignore
,然后再添加其他文件。提交只是本地的,我没有推送任何东西。第一次提交中的一些文件绝不能在线推送,因为它们包含机密数据。
删除存储库,重新开始。
由于 repo 包含 "classified data",从轨道上对该站点进行核攻击似乎是最好的。
Git 存储库很便宜,您的本地副本完全包含在 .git
目录中。如果你搞砸了第一次提交,删除 .git
目录(保留你的其他文件)和 git init
一个新的。
同时删除在线存储库并创建一个新的。一个新的在线存储库应该有与您现有的本地存储库连接的说明; git remote add origin
等等。
使用 git reset
& git amend
。
一种更普遍适用的方法是使用git reset
。这允许您任意移动分支头。 git reset --hard origin/master
将 return 掌握您的第一次提交(origin/master
恰好指向第一次提交,否则您将使用它的提交 ID)并丢弃后面的提交。 --hard
表示重置暂存区和工作副本(即磁盘上的文件)。
从那里您可以使用 git commit --amend
更改之前的(即第一次)提交。这不会进行新的提交,而是会更改之前的提交。这对于进行更改非常方便,甚至只是修复提交消息中的拼写错误。
看起来您已经推送了您的第一次提交。由于您要更改该提交,因此您将无法 git push
。您必须 git push --force
才能覆盖远程存储库中的内容。听起来这就是你想要的。
我创建了一个存储库,但是我不小心提交了我根本不想提交的文件。我想取消第一次提交。 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>...]'
我试图在 Attlasian SourceTree 中做 "reverse commit"。那只是删除了所有文件,但我不想删除它们,所以我又恢复了它。我现在有更多要删除的提交。
我想取消此存储库中的所有提交,然后先添加 .gitignore
,然后再添加其他文件。提交只是本地的,我没有推送任何东西。第一次提交中的一些文件绝不能在线推送,因为它们包含机密数据。
删除存储库,重新开始。
由于 repo 包含 "classified data",从轨道上对该站点进行核攻击似乎是最好的。
Git 存储库很便宜,您的本地副本完全包含在 .git
目录中。如果你搞砸了第一次提交,删除 .git
目录(保留你的其他文件)和 git init
一个新的。
同时删除在线存储库并创建一个新的。一个新的在线存储库应该有与您现有的本地存储库连接的说明; git remote add origin
等等。
使用 git reset
& git amend
。
一种更普遍适用的方法是使用git reset
。这允许您任意移动分支头。 git reset --hard origin/master
将 return 掌握您的第一次提交(origin/master
恰好指向第一次提交,否则您将使用它的提交 ID)并丢弃后面的提交。 --hard
表示重置暂存区和工作副本(即磁盘上的文件)。
从那里您可以使用 git commit --amend
更改之前的(即第一次)提交。这不会进行新的提交,而是会更改之前的提交。这对于进行更改非常方便,甚至只是修复提交消息中的拼写错误。
看起来您已经推送了您的第一次提交。由于您要更改该提交,因此您将无法 git push
。您必须 git push --force
才能覆盖远程存储库中的内容。听起来这就是你想要的。