我做了几次提交(让我们说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.
我想知道我怎样才能推动"我的代码,以便每个人都有这个版本。
答案 0 :(得分:3)
根据您的需要:
从历史记录中删除提交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
将输出一些指示其进度的消息,您应该最终得到一个新的主分支,其中包含除<commit 3>
之外的所有提交。
然后,您需要添加--force-with-lease
选项以推送此已编辑的master
分支:
git push --force-with-lease origin master
答案 1 :(得分:2)
git push -f origin
强制推送并更改回购的历史记录。
仅仅git revert
保留历史的2次提交可能会更好。
答案 2 :(得分:1)
您收到的消息表明您已经推送了提交3和4,因此硬重置不您想要做什么 - 该命令会更改历史记录,您永远不应该尝试更改已推送的提交历史记录。相反,做一个git pull
(这样你就是最新的)。然后git revert 3
撤消您在提交3中所做的更改。