如何用Git命令行复现IntelliJ IDEA的Get命令,保留master分支不分离
对应Git命令行操作说明
根据你的使用场景,IDEA的"Get"回退到历史提交并保持在master分支的操作,对应以下Git命令行步骤:
1. 找到目标提交的哈希值
先查看提交历史,获取你想要回退到的那个提交的哈希值:
git log --oneline
这个命令会输出精简的提交记录,每条包含短哈希(比如abc123)和提交说明,找到你需要的目标提交哈希即可。
2. 回退到目标提交
根据后续提交是否已推送到Bitbucket,分两种情况操作:
情况A:仅本地提交未推送到远程
执行硬重置命令,将master分支、工作区和暂存区完全回退到目标提交状态:
git reset --hard <目标提交哈希>
比如目标提交哈希是abc123,就执行git reset --hard abc123。
执行后,本地master分支会指向该历史提交,代码也恢复到当时的状态,之后可以正常修改代码、提交到master分支,按日常流程推送即可。
情况B:后续提交已推送到Bitbucket
先执行硬重置命令回到目标提交:
git reset --hard <目标提交哈希>
由于远程master已包含你要丢弃的后续提交,需要强制推送覆盖远程历史:
git push -f origin master
注意:你作为独立开发者无协作场景,强制推送不会影响他人,可放心使用;若有团队协作,强制推送会覆盖他人提交,需谨慎操作。
3. 后续提交流程
回退完成后,按日常流程修改、提交和推送即可:
git add . git commit -m "你的提交说明" git push origin master
此时代码库状态即为目标历史提交 + 新变更,master分支的历史会更新为「目标提交 -> 新提交」。
内容的提问来源于stack exchange,提问作者Paul Taylor
相关产品推荐
相关产品推荐

