我发出以下命令:
git reset --hard HEAD~1
这就像我想要的那样,将代码推回原点。然后,我对代码进行了一些更改,并做了:
git add -A
git push
回来了......
! [rejected] master -> master (non-fast-forward)
hint: Updates were rejected because the tip of your current branch is behind
所以我做了以下尝试强制它:
git push -f
结果:
Counting objects: 360, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (220/220), done.
Writing objects: 100% (230/230), 1.97 MiB | 354.00 KiB/s, done.
Total 230 (delta 81), reused 0 (delta 0)
remote: Analyzing objects (230/230) (18348 ms)
remote: Storing pack file and index... done (284 ms)
To <url>
! [remote rejected] master -> master (TF401026: The ForcePush permission is required to perform this action.)
error: failed to push some refs to '<url>'
那么如何将此代码推送到当前的主代码?
git存储在visualstudio.com上,如果这会产生影响。
答案 0 :(得分:3)
Helion提供了很好的建议,我建议接受它。基本上我在你的场景中会做的是:
首先,请按照原始错误消息的说明进行操作,其中包含git pull
,仅在此情况下我会使用git pull --rebase
。
所以运行git pull --rebase <remote name> <branch name>
完成此操作后,您在重置后所做的更改将重播在您之前删除的文件之上。
您的git日志将类似于:
commit 0d703fc79bf996e04275888dd6732e77048b2748
Author: Peter Foti <peterfoti@me.com>
Date: Thu Feb 13 14:18:39 2014 -0500
Good Commit
commit 812fad226565382875021236690f74e96a54a16a
Author: Peter Foti <peterfoti@me.com>
Date: Thu Feb 13 14:18:03 2014 -0500
Commit you previously deleted
然后你可以做的是通过写:
来恢复之前重置的提交的更改 git revert <sha hash of bad commit>
恢复将要做的是实际创建另一个提交,以反转错误提交。因此,它将完全撤消以新提交形式提交的所有内容。
完成后,您将能够成功git push
。