Git cherry-pick

今天一个情境下为,我们在master创建一个有bug的文件,而后在创建一个分支(stable 1.x),此时此分支与master是同步的,而后我们在master在创建一个新的文件,此时很明显我们的分支是落后master,且两者都带有个bug的文件,此时我们如果各别去修复会很麻烦。且修复后两者会产生不一样的commit,导致两者前面部分并未同步,我们所希望的是能达到在不增加且破坏原本的commit前提下,能进行修改有bug的commit即可

http://img2.58codes.com/2024/20126182yFieKViswm.png

而我们先至master分支将有bug的文件给处理(vim 文件名)好后,再利用git add * => git commit -m "bug fix by jojo" => git push origin master,此时远端项目看到commit已增加,bug也已经修复,那此时我们也将修复好的bug套用到也有同样bug的分支(stable 1.x),我们可以直接用merge,但这样不太好,因为我们在master的bug创建之后还有其他的一些操作这样都会merge到其分支,会多一些不必要的commit,所以其实我们只需要修复bug的这个commit。

首先在master git log,複製修复bug commit的hash value,而后切换到分支(stable 1.x),并输入 git cherry-pick (commit hash value)后,在git log,发现已经多出一个修复bug的commit,而后我们git push origin stable 1.x 给push到远端,去check也发现commit已经确实增加,而且没有多其他的commit。

http://img2.58codes.com/2024/20126182RIjuSrIwAl.png

http://img2.58codes.com/2024/20126182L4Xm8TS7Zx.png


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章