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仓库

配置/查询用户名邮箱的命令

system配置

git config --system user.name "username"
git config --system user.email user@email.com

global配置

git config --global user.name "username"
git config --global user.email user@email.com

local配置

git config --local user.name "username"
git config --local user.email user@email.com

查询配置

git config user.name
git config user.email

修改备注信息

修改最近一次的commit的注释

git commit --amend 

修改某次的commit的注释

  1. rebase到指定提交
// 指定commit id
git rebase -i 4cb600e
// 倒数第二次提交
git rebase -i HEAD~2
  1. 修改commit注释,不再重复代码
  2. 恢复代码分支
git rebase --continue
  1. push修改
    如果git命令amend没有打开vim编辑器,检查是否配置编辑器,如果没有按照下面命令配置
git config --global core.editor "vim"
export GIT_EDITOR=vim

注意:
下面场景无法通过rebase修改备注信息

  1. 合并master至需求分支
  2. push 代码
  3. 再次修改需求分支代码,提交代码

此时想要通过rebase修改merge那次的备注信息,无法修改,可以通过reset至merge那个动作的节点,然后通过git commit --amend修改备注信息

上传本地项目至git

  1. idea创建本地项目,创建时可以指定同时创建本地git仓库,否则需要手工初始化如下:
  2. 关联本地仓库至远程仓库
git remote add origin https://github.com/my-git.git
# 推送代码
# 初次推送,远程仓库是空的,因此需要-u参数
git push -u origin master
# 后续更新可直接推送
git push origin master

push强推

git push --force-with-lease origin myBranch

合并commit信息使提交信息更加简洁

commitId3
commitId2
commitId1

想要合并commitId2 commitId3
git rebase -i commitId1
按i进入编辑模式,将commitId3前方的pick修改为squash,按ESC输入wq保存退出即可
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值