[英]Git reset - branch is behind master
我进行了几次提交(假设ID为:1、2、3、4),然后意识到我在提交3中犯了一个错误,想返回到提交2处的代码版本。
我做了:
git reset --hard 2
现在git说:
On branch master.
Your branch is behind origin/master by 11 commits and can be fast forwarded.
我想知道如何“推送”我的代码,以便每个人都拥有此版本。
根据您的需要:
从历史记录中删除提交3的一种方法是:
$ git rebase -i <id of commit 2>
# an editor will open a text editor, asking you to describe what you want to do
# delete the line containing <commit 3>, save and exit
git
将输出一些指示其进度的消息,您应该以一个新的master分支结尾,该分支包含除<commit 3>
之外的所有提交。
然后,您需要添加--force-with-lease
选项以推送此已编辑的master
分支:
git push --force-with-lease origin master
git push -f origin
强制推送并更改您的存储库历史记录。 git revert
两个提交以保留历史记录可能会更好。
您收到的消息表明您已经推送了提交3和4,因此硬重置不是您想要执行的操作-该命令会更改历史记录,并且您永远不要尝试更改已推送的提交的历史记录。 相反,请执行git pull
(以便您保持最新状态)。 然后git revert 3
撤消在提交3中所做的更改。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.