代码提交常遇到的问题
在企业项目开发中,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 键,可以放弃更改并退出编辑器。