目录
- git 撤销中间某次提交,保留其他提交的方法
- git 撤销已经push的代码
- git 新建分支
- git 删除分支
git 撤销中间某次提交,保留其他提交的方法
git revert commit_id 通过git log 获取commit_id。

如果commit_id是merge节点的话,-m是指定具体哪个提交点,如果不是merge节点,执行git revert 41c1d13069fb3738fea9566f3c83d93918ea4a05 即可。
git revert 41c1d13069fb3738fea9566f3c83d93918ea4a05 -m 1
如果出现下图界面,直接回车到最后,然后输入
:wq保存并退出即可,最后再git push。
使用git revert 之后如果想再次merge 会无法merge过来,这个时候只需要找到上次revert的commit_id ,再次执行 git revert 9851d22a4795343d2866ce2f729c0da4888a11bf,然后再按上面的步骤执行:wq、git push就可以了。

git 撤销已经push的代码
- git reset --soft HEAD~1
– 撤销最近一次的commit(撤销commit,不撤销git add) - git reset --mixed HEAD~1
– 撤销最近一次的commit(撤销commit,撤销git add) - git reset --hard HEAD~1
– 撤销最近一次的commit(撤销commit,撤销git add,工作区的代码改动将丢失。操作完成后回到上一次commit状态)
git reset 后要执行git push origin branch_name -f,前后log对比,commit中不在存在记录。

git 新建分支
- 新建分支
git branch new_branch_name - 切换分支
git checkout new_branch_name - 推送到远程
git push -u origin new_branch_name
git 删除分支
- 利用
git branch --delete branch_name命令删除本地分支 - 利用
git push origin --delete branch_name命令删除远程分支
git fetch -p是 Git 中的命令,用于获取并清理(prune)操作。 当你运行git fetch
命令时,它会从远程仓库中获取最新的变更,但不会将这些变更合并到你的本地分支中。默认情况下,Git
仅会获取远程仓库中的新分支和标签,但不会删除在远程已被删除的分支或标签的引用。-p或--prune选项告诉 Git
除了获取最新的变更外,还要删除在远程仓库中已被删除的远程跟踪分支。这样可以清理掉本地仓库中已不存在的远程分支的引用,确保本地仓库与远程仓库保持同步。
因此,当你运行git fetch -p命令时,它会获取远程仓库中的最新变更,并删除在远程仓库中已被删除的远程跟踪分支。


















