git遴选:一行代码恢复被同事误删(覆盖)的代码

代码提交常遇到的问题

在企业项目开发中,git是我们每个程序员提交代码必用的工具。在多人开发同一个项目中的时候,总会出现很多代码提交问题,一个常见的问题就是:我刚提交了代码,结果另一个(混蛋)同事不小心覆盖掉了我的代码进行了提交,导致我的代码突然丢失......

比如前几天,我辛辛苦苦的做了一个功能,我提交了代码【feat:优化hover卡片】

结果B同事在开发时,没有拉取最新代码,解决冲突时也忽略了我的代码就提交了,结果导致云端丢失了我的代码。更惨的是我拉取了代码,导致我本地修改的也没了......同事185,170的体重,体重不足110的我放弃了挣扎。

还好,我发现了git一个牛逼的功能:代码遴选

代码遴选

什么是代码遴选

代码遴选,实际指的是:git cherry-pick

"git cherry-pick" 是 Git 提供的一个命令,用于从一个分支中选择单个提交(或多个提交),并将它们应用到当前分支中。

通俗易懂的来说,就是将git提交历史的某个提交,直接复制在当前分支上!

我们看下代码执行结果就明白了:

看来,学会代码遴选,在也不怕同事误删代码了!

git cherry-pick语法

首先,我们看看git cherry-pick的语法

python 复制代码
git cherry-pick <commit-hash>

这会将指定的提交应用到当前分支中。

你也可以指定多个提交:

python 复制代码
phpCopy code
git cherry-pick <commit-hash-1> <commit-hash-2> ...

除了单个提交的哈希值外,你也可以使用其他引用来指定提交,比如分支名、标签名等。

如何执行

使用vscode命令行直接执行

首先,我们使用git log 找到要遴选的commit-hash编码

然后控制台输入如下命令即可。(一行命令,直接解决问题!)

复制代码
git cherry-pick 21a8ff5035b1730f8734a806d6a601b0b442f3bb

注:如果出现冲突,按照控制台的提示解决即可。

使用vscode插件Git Graph

Git Graph" 是一个 Git 图形化工具,用于可视化 Git 仓库的分支、提交历史和代码更改。

安装插件

进入插件

选择要遴选的代码

点击确定即可

注:如果出现冲突,按照提示框解决即可

可能遇见的问题说明

由于 cherry-pick 是将提交复制到当前分支上,因此可能会产生冲突,需要手动解决。在vscode和图形化工具中,都有对应的解决提示,我们可以根据提示来进行解决。某些情况下,也可能进入git的vim编辑器,需要填写提交信息。

vim编辑器小技巧

  • 进入编辑模式:进入编辑模式的方式取决于当前编辑器的模式。通常情况下,按下 i 键可以进入插入模式,允许你编辑文本。
  • 编辑文本:在插入模式下,你可以编辑文本。使用方向键或者 h, j, k, l 键移动光标。
  • 退出编辑模式:编辑完成后,按下 Esc 键退出插入模式。
  • 保存并退出:在退出编辑模式后,输入 :wq 并按下 Enter 键,可以保存并退出编辑器。
  • 放弃更改并退出:在退出编辑模式后,输入 :q! 并按下 Enter 键,可以放弃更改并退出编辑器。
相关推荐
梦梦代码精2 小时前
从工程视角拆解 BuildingAI:一个企业级开源智能体平台的架构设计与实现
人工智能·gitee·开源·github
zhensherlock8 小时前
Protocol Launcher 系列:Trello 看板管理的协议自动化
前端·javascript·typescript·node.js·自动化·github·js
YoseZang9 小时前
【手工】git的使用 – 使用git进行项目协作
git
惺忪979810 小时前
git 多个branch对多个版本进行管理
git
夜瞬13 小时前
Git工作流程与常用指令——从本地开发到远程协作
大数据·git·elasticsearch
FEF前端团队13 小时前
开发知识库 #01:Git 全面操作教程
git·github
栩栩云生14 小时前
x-cmd v0.8.15: claw AI 助手升级,连微信、飞书更稳了;free 新增专家模式,直接把底层内存细节喂给你
github·agent·命令行
傻啦嘿哟15 小时前
Python 文件批量处理:重命名/备份/同步运维实战指南
linux·数据库·github
淘矿人15 小时前
Claude辅助算法设计与优化
人工智能·python·算法·microsoft·github·bug·pygame
逛逛GitHub16 小时前
给 10 万 Star 的 Hermes 装个记忆外挂,AI 终于能越用越聪明了。
github