实用git命令

stash(存储临时代码)

场景:当开发到一半功能,测试跑过来让你紧急修复一个bug,但手头上的功能点并没有完成,如果此时提交就会变成一个脏记录,此时我们可以将所有文件先储存起来,然后再做其他事情。

git stash -m "msg" # 暂存当前信息,msg表示此次储存的内容
git stash list # 查看储存列表
git stash apply "stash@{0}" # 选择释放第几个储存,当前命令行不删除储存记录
git stash pop # 选择第0个,并且将其在储存列表删除
git stash clear # 删除所有暂存记录
git stash drop stash@{0} # 删除第一个记录

如果不小心输错了命令行,结果把暂存记录删了,没关系,如果此时你当前页面还没有关闭,上面还有你被删除掉的hash,那没关系,赶紧赶紧将其恢复即可

git stash drop stash@{0}
git stash apply "hash"

如果已经不见了,那可能就要用下面几条命令恢复就行。

git fsck --unreachable # 显示出所有不可访问的对象。
git show ~ # ~为hash,通过展示具体内容来判断是否为需要恢复的stash
git stash apply ~ # ~为hash,恢复stash

git fsck --unreachable效果图

如果项目比较久比较大可能要找起来就会比较麻烦一点了

git show效果图

reset(撤销)

撤销暂存区的文件

git reset HEAD # 撤销当前缓存区的所有文件
git reset HEAD file_name # 撤销当前缓存区的file_name文件

软回溯,回退commit的同时保留修改内容
场景1:开发完了一个功能点,很开心,add-commit一气呵成,结果发现当前是master分支(有些公司不允许改master分支的代码)手动裂开
场景2:开发完一个功能点,很开心,add-commit一气呵成,结果发现还有两行代码忘了写进去,此时要是再提交一次,又会生成一个脏记录,怎么办呢

git reset --soft "HEAD^" # 软回溯到上个版本
git reset --soft hash值 # 软回溯到某个版本,在此修改的所有文件都将被保留

执行命令后会将所有修改过的文件都回退到commit之前

cherry-pick

给定一个或多个提交,应用每个提交引入的更改,为每个提交记录一个新的提交。
翻译:将分支的指定提交复制到另一个分支。

场景:某次开发完成后,产品过来说有个功能废弃了。此时你除了想打产品之外,还得想怎么把之前开发的代码给去除掉。
用法:从干净的分支中拉出一条新的分支,然后将你开发的需要用的commit点查出对应的hash值,提交到新的开发分支中,大功告成

git cherry-pick hash值 # 提交一次
git cherry-pick hash值1^..hash值  # 提交连续的commit
git cherry pick hash值1 hash值2 # 提交多次

revert

将某个提交还原,并生成一条还原记录
场景:当发现项目有重大bug,但是此时如果直接回滚,可能会有你的partner也提交了同样的代码,造成无辜者要重新

git revert hash值 # revert会生成一条新的提交记录,编辑完后:wq保存退出即可   

update-index --assume-unchanged

将某个文件在提交的时候被忽略,注意:忽略是指当前版本提交时不修改该文件。
场景:开发的时候,我们可能需要的开发环境部分配置跟测试及生产环境不一样,如数据库配置,需要手动修改,又不想把修改过的配置文件提交,这时候只需要用到下边的命令。

git update-index --assume-unchanged [file-path] # 忽略某文件
git update-index --no-assume-unchanged [file-path] # 恢复提交某文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值