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 小时前
如何安装和注册 GitLab Runner
gitlab
VaporGas3 小时前
idea集成和使用Git指南
java·git·intellij-idea
无名之逆3 小时前
计算机专业的就业方向
java·开发语言·c++·人工智能·git·考研·面试
大广-全栈开发4 小时前
centos 7 安装gitlab
linux·git·centos
zhangphil4 小时前
git删除本地分支报错:error: the branch ‘xxx‘ is not fully merged
git
Tammyhlf5 小时前
新电脑工作流搭建记录-前端篇
git
6230_6 小时前
git使用“保姆级”教程1——简介及配置项设置
前端·git·学习·html·web3·学习方法·改行学it
为祖国添砖爪哇8 小时前
【Git原理与使用】多人协作与开发模型(2)
git
memories1988 小时前
git使用方法详解(适合新手)
git
为祖国添砖爪哇9 小时前
【Git原理与使用】版本管理与分支管理(1)
git