0

I had accidentally added a wrong to git update (git add wrongfile). I committed this change and started pushing to git server (git push origin master). But then I realized I had committed a wrong file (the wrongfile size is more than 200MB XML file), there for I interrupted the upload. I deleted that file and removed it from git changes (git rm wrongfile). But now the terminal says:

Your branch is ahead of 'origin/master' by 1 commit. (use "git push" to publish your local commits)

Does anybody know how to resolve this? I used git reset --hard HEAD but it didn't work. (I have backed up my files if anything goes wrong.)

4

4 回答 4

0

我将项目克隆到另一个文件夹并将我当前的工作项目文件夹放入其中并从该文件夹推送更改。最后删除了乱七八糟的项目目录并移至新克隆的目录。这是一个最糟糕的解决方案,但我这样做是因为我不知道从终端解决它的正确命令。#timeSaver #此时此刻

于 2013-10-15T18:37:16.683 回答
0

您看到的消息(您的分支领先 1 个提交)意味着您的本地存储库有一个尚未推送的提交。

请参阅这篇文章:git - 您的分支比 'origin/master' 领先 1 个提交

如果你犯了垃圾但没有被推送,

git reset --soft HEAD~1 HEAD~1 是 head 之前提交的简写。或者,您可以参考要重置的哈希值的 SHA-1。--soft 选项将删除提交,但它将保留所有更改的文件“要提交的更改”,就像 git status 所说的那样。

如果您想摆脱自头部提交之前对工作树中跟踪文件的任何更改,请使用 --hard 代替。现在,如果你已经推了有人拉了,这通常是我的情况,你不能使用 git reset。但是,您可以执行 git revert,

git revert HEAD 这将创建一个新的提交,它会反转由意外提交引入的所有内容。

(引自http://nakkaya.com/2009/09/24/git-delete-last-commit/

于 2013-10-15T17:37:44.800 回答
0

没有任何问题。提交仍然存在于本地,这就是该消息告诉您的全部内容(使用 验证git fetch ; git log origin/master..master)。您可以通过运行在本地撤消提交

git reset head~

这不会在本地更改任何文件(这是“软”重置)。

git reset --hard head如果您的工作树中没有任何修改过的文件,则将无效。

于 2013-10-15T17:38:22.570 回答
0

你试过:git reset --soft HEAD^?或者您可以:git reset --soft [commit_hash]重置您的错误提交。在此之后,您可以删除那些不必要的文件并再次提交,然后推送它。

于 2013-10-15T17:40:04.553 回答