目录
- 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
命令时,它会获取远程仓库中的最新变更,并删除在远程仓库中已被删除的远程跟踪分支。