git常用命令

注:与shell命令的manual相同,中括号[]表示参数非必传

reflog 查看分支基于哪个分支创建

# 查看myBranch分支基于哪个分支创建
git reflog show myBranch --date=local
# 查看输出最早的一条记录如下
ff01ab45 myBranch@{Tue Jul 26 16:27:34 2022}: branch: Created from messageDegrade^0

status

查看当前工作空间状态以及状态切换命令提示(提交/回滚/中断merge)

git status

stash 暂存

新增暂存

# 暂存名称为最新一次提交的commit -m的内容
git stash
# 暂存名称为 myChange
git stash save 'myChange'

查看暂存

# 查看暂存stash@{0}与当前分支的差异
git stash show [stash@{0}]
# 查看暂存列表
git stash list

取出暂存

# 取出并删除指定下标处的暂存,并与当前分支合并
git stash pop [stash@{0}]
# 仅取出指定下标处的暂存,并与当前分支合并
git stash apply [stash@{0}]

删除暂存

# 删除置顶暂存
git stash drop stash@{0}
# 全部删除
git stash clear

Git回滚到某个commit

reset 回滚

git reset 参数:
hard:工作区、暂存区的内容都会和当前head指向的内容相同。
soft:head指针指向指定的commit,但是工作区、暂存区的内容不会发生变化。
mixed:介于hard和soft之间,暂存区的内容将会发生变化,但是工作区的内容不会发生变化。

# 将head指向上一次commit
git reset --hard head^
# 将head指向上上次commit
git reset --hard head^^
# 将head指向上10次的commit
git reset --hard head~10
# 指定commit版本号 将head移动到指定的commit 
git reset --hard 指定commit的sha码

log 查看commit的sha码

git log

push 强推到远程仓库

# 如果无法强推,检查是否分支处于保护状态,是则先在后台取消该分支保护。
# 强推后被回滚的代码就找不回来了,做好备份!
git push origin HEAD --force

revert

代码merge到主干回滚后想要重新修改回滚代码后merge到主干

# 反向操作你的rollback的代码
git revert <commit-id>
# 反向操作某个提交,但执行命令后不进入编辑界面,也就是不会自动帮你提交文件,需要手动提交
git revert -n|--no-commit <commit-id>

revert与reset的区别

reset是将git变更指针移动到指定commit-id
revert是将指定commit-id的变更反向操作后作为一次新的commit提交至git仓库


版权声明:本文为u010597819原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。