前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git 不要只会 pull 和 push,试试这5条高级提效命令!

Git 不要只会 pull 和 push,试试这5条高级提效命令!

作者头像
搜云库技术团队
发布2024-07-30 19:51:30
750
发布2024-07-30 19:51:30
举报
文章被收录于专栏:搜云库技术团队

嘿,伙计们!每天光靠拉拉推推的 Git 操作是要混到什么时候?来点高级货色,让你在同事面前装 X 的时候多一点底气。今天,哥们儿给你带来了 5 个提升效率的 Git 命令,帮你从菜鸟迅速进阶为老鸟!

已收录于,我的技术网站:ddkk.com 里面有,500套技术系列教程、1万+道,面试八股文、BAT面试真题、简历模版,工作经验分享、架构师成长之路,等等什么都有,欢迎收藏和转发。

1. stash:存储临时代码

有时候你写了一半的代码,突然领导叫你修个紧急 bug,手上的改动还不能 commit,这时候就需要 stash 大法。

基本用法
代码语言:javascript
复制
# 存储当前的工作现场
git stash save "修 bug 之前的中断点"

这个命令会把你当前的改动保存起来,包括工作区和暂存区的内容。这样你就可以切换到其他分支去修 bug 了。

代码语言:javascript
复制
# 查看 stash 列表
git stash list

用这个命令可以看到所有 stash 的内容,方便你找到刚刚存储的那一个。

代码语言:javascript
复制
# 恢复之前存储的工作现场
git stash pop

恢复刚才的改动,pop 命令会把存储的改动应用到当前分支,并从 stash 列表中删除。要是你不想删,可以用 git stash apply

进阶玩法
代码语言:javascript
复制
# 只存储工作区的改动,不包含暂存区
git stash save --keep-index "仅存储工作区的改动"

这个命令就比较灵活了,适合一些特殊场景,比如你暂存了一部分改动,但还没提交。

代码语言:javascript
复制
# 存储未跟踪文件
git stash save -u "包含未跟踪文件的改动"

一般情况下,stash 不会存储未跟踪文件,用这个命令可以把这些文件也一并保存起来。

2. reset --soft:软回溯

提交后发现有些东西没写好,或者不该提交上去,怎么办?来个软回溯,把 commit 回滚,但保留修改。

基本用法
代码语言:javascript
复制
# 回到上一个 commit,但保留工作目录的改动
git reset --soft HEAD^

这个命令会让你的 HEAD 回到上一个 commit,但是工作区和暂存区的改动都会保留。这样你可以继续修改,再重新提交。

代码语言:javascript
复制
# 回到指定 commit
git reset --soft <commit-hash>

这个命令更强大,可以回滚到任何一个 commit,同样保留改动。

3. cherry-pick:复制 commit

开发分支上写了个牛逼的功能,想赶紧拿到主分支上炫耀?用 cherry-pick,把指定的 commit 应用到当前分支。

基本用法
代码语言:javascript
复制
# 把特定 commit 应用到当前分支
git cherry-pick <commit-hash>

这个命令会把指定的 commit 应用到当前分支,相当于复制了一份改动。非常适合从一个分支把特定改动拿到另一个分支。

进阶玩法
代码语言:javascript
复制
# 处理 cherry-pick 产生的冲突
git cherry-pick --continue

如果 cherry-pick 过程中有冲突,解决完冲突后用这个命令继续。

代码语言:javascript
复制
# 跳过当前冲突的 commit
git cherry-pick --skip

这个命令会跳过当前冲突的 commit,继续应用后面的 commit。

4. revert:撤销 commit

误提交了个 bug,想撤销但不破坏历史记录?revert 就是你的救星。

基本用法
代码语言:javascript
复制
# 撤销特定的 commit
git revert <commit-hash>

这个命令会生成一个新的 commit,反向应用指定的 commit,从而撤销之前的改动。这样历史记录保持完整,非常优雅。

进阶玩法
代码语言:javascript
复制
# 撤销一系列的 commit
git revert <oldest-commit-hash>..<newest-commit-hash>

这个命令可以撤销一系列的 commit,一次性搞定所有需要撤销的改动。

代码语言:javascript
复制
# 自动提交生成的 revert commit
git revert --no-commit <commit-hash>

这个命令会生成一个反向 commit,但不会自动提交,让你有机会先检查一下,再手动提交。

5. reflog:记录 commit 历史操作

手滑误操作了?想找回被 reset 掉的 commit?reflog 是你的时光机!

基本用法
代码语言:javascript
复制
# 查看所有的操作记录
git reflog

这个命令会列出所有的操作记录,包括那些你以为丢失的 commit。每个操作都有一个索引值,可以根据索引恢复到任意一个历史操作点。

代码语言:javascript
复制
# 恢复到某个历史节点
git reset --hard <reflog-index>

使用这个命令,你可以轻松恢复到某个历史节点,把误操作的损失降到最低。

进阶玩法
代码语言:javascript
复制
# 查看某个分支的 reflog
git reflog show <branch-name>

这个命令可以查看某个分支的操作记录,方便你找到特定分支的历史操作。

代码语言:javascript
复制
# 清理 reflog 记录
git reflog expire --expire=now --all

这个命令会清理所有过期的 reflog 记录,保持仓库的整洁。

总结

好了,今天的五个命令绝技就到这里。以后别再天天只会 pull 和 push 了,学会这些高级命令,工作效率提升不说,还能在团队里装 X,成为大家眼中的 Git 高手。

已收录于,我的技术网站:ddkk.com 里面有,500套技术系列教程、1万+道,面试八股文、BAT面试真题、简历模版,工作经验分享、架构师成长之路,等等什么都有,欢迎收藏和转发。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师技术栈 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. stash:存储临时代码
    • 基本用法
      • 进阶玩法
      • 2. reset --soft:软回溯
        • 基本用法
        • 3. cherry-pick:复制 commit
          • 基本用法
            • 进阶玩法
            • 4. revert:撤销 commit
              • 基本用法
                • 进阶玩法
                • 5. reflog:记录 commit 历史操作
                  • 基本用法
                    • 进阶玩法
                    • 总结
                    相关产品与服务
                    对象存储
                    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档