繁体   English   中英

git reset-分支在master后面

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM