我知道这个问题以前已经被问过了,虽然给出的答案
我该如何重置服务器?
git reset --hard HEAD~1
有效,但是我无法将其推送到服务器,因为服务器比我本地版本更新。显然,拉取代码会把我拉回到原来的状态。我该如何重置服务器?
git reset --hard HEAD~1
有效,但是我无法将其推送到服务器,因为服务器比我本地版本更新。显然,拉取代码会把我拉回到原来的状态。git revert
,因为如果这是该政策,您随时可以放弃提交。如果要还原合并,则需要使用git revert --mainline <parent-number>
指定要还原到哪个父级(“主线”)。branch.autosetuprebase=always
)master
是唯一的“公共”分支git push origin --force
如果你的同事接受将他们自己的本地分支重置为新的 origin/master(假设我们正在谈论该“master”分支),那么强制推送是一种选项。
git fetch
git reset origin/master
(不要使用 reset --hard
,因为这会清除正在进行中的工作和私人文件)
(请注意,它将取消之前已添加到索引的内容)
另一个选择是“撤消您的错误”(如果您已经推送了错误的提交),可以撤销它,并创建一个新的提交来取消以前的提交。
参见 git revert
。
然后,您可以推送(常规推送)该撤销提交。
git revert
命令并推送。 - MaliHEAD~1
但已有同事拥有HEAD
),他将不得不自己推送并重写历史,从而重新引入你所撤销的更改。因此,请不要使用git reset --hard HEAD~1 && git push --force
,而是手动重置(逐个重新引入更改,然后git push
)。 - ThanksForAllTheFishgit revert
是我现在认为的正确方式。如果Git的设计围绕场景有一个用户体验团队,生活将会多么美好啊。 - Luke Puplett