前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >原来 git stash 应该这么用

原来 git stash 应该这么用

作者头像
王云峰
发布2023-10-23 10:33:04
1970
发布2023-10-23 10:33:04
举报

概述

前段时间突然发现,我之前对git stash的使用都是错误的。

具体说来,我是这么使用的:在远端有新的提交,需要git pull来拉取合并时,发现本地有一些未提交的修改,功能也没实现,不适合做一次commit。这时候我执行git stash隐藏本地的修改,然后执行git pull来拉取远端的更新,在最新代码基础上重新实现stash的那些代码中的功能。

这里的问题是,重新实现stash代码中的那一步,其实完全可以用git stash pop来替代,执行这个命令会在最新代码基础上作用stash的代码,不用再重新实现一遍了(不过这时可能会有代码冲突需要解决)。所以我之前是把git stashgit checkout -- .来用了,也就是抛弃了本地的代码更新,显然是有问题的。

正确流程基本上是这样:

下面记录一下 git stash 提供的功能和一些参数。

git stash 具体用法

git stash创建一个新的stash,效果与git stash push 一样,效果如下:

增加-u选项可以将未track的文件也隐藏起来。

你可以创建多个stash,最早的stash表示为stash@{0},然后是stash@{1},依次递加。

git stash list 会列出所有的stash:

git stash show可以查看最新stash中的修改,加上编号可以查看之前版本的修改。

git stash apply 可以应用最新的stash到当前的代码中,同样的,如果加上编号则可以应用之前版本的修改到当前代码。apply执行后记得调用git stash drop 来去除以及应用的stash。 git stash pop效果等于git stash apply + git stash drop

git stash branch会基于老的提交代码创建一个分支,同时把最新的修改也作用过去,这样对于新的提交和老提交代码变化很大的场景比较好,避免在新的提交上apply stash时由于冲突太多造成的合并问题。

git stash clean 会清空所有的stash,且没有任何提示,这意味着你所有隐藏的代码都会被删除,执行此命令前请三思!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-01-152,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 概述
  • git stash 具体用法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档