Posted in

Git: 常用小技巧_AI阅读总结 — 包阅AI

包阅导读总结

1. 关键词:Git、分支切换、stash 命令、cherry-pick 命令、问题解决

2. 总结:本文主要介绍了 Git 在日常工作中的两种情况及解决办法,包括无法切换分支时使用 git stash 命令临时存储更改,以及合并分支错误时使用 git cherry-pick 命令选择性合并提交。

3. 主要内容:

– Git 日常工作中的问题

– 开发新需求时需切换分支,但 Git 不允许未提交变更时切换。

– 公共合并分支可能被错误合并,导致代码污染。

– 问题一的解决办法

– git stash 命令可临时存储未提交更改。

– 常用命令如 git stash save、git stash list 等。

– 新增文件处理及对远程仓库无影响。

– 问题二的解决办法

– git cherry-pick 命令可选择性将提交合并到其他分支。

– 常用命令及附加选项的用法。

思维导图:

文章地址:https://mp.weixin.qq.com/s/c4CZIlTeYbwx9Pl9cqTFfQ

文章来源:mp.weixin.qq.com

作者:逆yan_

发布时间:2024/9/3 8:01

语言:中文

总字数:1383字

预计阅读时间:6分钟

评分:86分

标签:Git,版本控制,开发工具,代码管理,技术技巧


以下为原文内容

本内容来源于用户推荐转载,旨在分享知识与观点,如有侵权请联系删除 联系邮箱 media@ilingban.com

点击关注公众号,“技术干货”及时达!

前言

在日常工作中,大家是不是遇到过这几种情况

  1. 在开发新的需求的时候,紧急让你去修改项目中某个问题,这就需要从自己的开发分支切到新的分支,那么这个时候,git是不允许你提交的,你必须将变更提交到版本库才可以切换分支。
  2. 一般我们的Git工作流是,一个需求一个开发分支,但是一个项目中的某个环境(生产除外)都会有一个公共的合并分支,既然是公共的合并分支,那肯定是多个人需要把自己的代码合并到公共分支后,在发布到环境上。那这样可能会存在一个问题,就是开发人员在合并分支的时候,不小心将自己的开发分支,合了公共开发分支,这样的话,你的代码中可能会存在其他需求的代码,那么在code review的时候就会出问题,因为别人的需求,可能不会跟你的需求一起上线,如果是刚开始合并完,及时发现还可以补救。

今天来给大家介绍一下以上两种情况的解决办法

问题一解决办法

git stash 命令能够将当前工作目录中尚未提交的所有更改(包括暂存区和未暂存的修改)临时存储到stash堆栈中,从而让用户在不影响当前工作进度的前提下,轻松切换到其他分支处理问题、合并代码或恢复到干净的工作状态。

常用命令

命令 说明
git stash 保存工作区内变更
git stash list 查看当前git中存储的状态
git stash save ‘message’ 保存当前工作区状态,并添加一个信息
git stash pop 读取最近,并将工作区恢复到这个存储状态,并删除
git stash apply [stashName] 读取某个存储记录,并将工作区恢复到这个存储状态,并删除

栗子🌰

可以看到当前工作区内修改了这个文件,当我切换分支的时候是切换不过去的,但git已经给了提示,提交你的更改或者使用stash

运行git statsh save 'message'命令

查看stash,安装vscode扩展Gitlen,可以看到此时我们刚刚保存的一条stash已经成功了,这个时候我们可以随意切换分支,合并等操作。

应用当前存储状态

可以看到工作区又恢复成,我们存储前的样子。

新增的文件(未跟踪)会不会被存储?会不会影响运程仓库?

  1. 新增的文件不会被存储,但我们可以先执行git add命令后,再去执行git stash,这个时候新增的文件也会被存储起来。或者运行git stash -u命令,添加-u选项后,会存储git未跟踪的文件。
  2. git stash命令纯是在自己本地操作,完全不用担心,会影响远程仓库,比如我在运行git stash pop恢复工作区状态后,还可以继续运行git commit -m git push git pull等一系列命令

以上是git stash的用法,当然也有一些高级的用法,比如一些附加选项,一些其他的命令以及它的原理,感兴趣的同学可以自行去了解一下,大家一起共勉…

问题二解决办法

前面已经提到,如果在你合并了公共开发分支后,及时回滚是没有问题的,下面我们主要看,在没有及时发现的情况下的补救办法。

git cherry-pick commit_id 命令,从一个分支选择性的将commit合并到另一个分支上。

常用命令

命令 说明
git cherry-pick <commit_id> 转移某个提交
git cherry-pick <commit_id>..<commit_id> 转移m-n提交,不包含头尾
git cherry-pick <commit_id>^..<commit_id> 转移m-n提交,包含头尾,^表示包含
git cherry-pick <commit_id> <commit_id> 分散的情况下,可以选择转移多个提交

附加选项

  1. --continue 主要用于解决冲突后,继续转移操作

以上是git cherry-pick的用法,主要还是用于选择性的将commit转移到新的分支上,对于开发分支被污染有很大的作用。

最后

今天的分享就到这里了。希望能够帮助各位。如有不正确的地方,欢迎大家指正。😘

点击关注公众号,“技术干货”及时达!