Git命令: add、cherry pick
一 简述
最近,在公司的某项学习任务考核中,涉及从0开始编辑一个项目,以及git相关操作。这里遇到了git add -u 和 cherry pick等命令。本篇将介绍相关的几个命令,加深对git命令的理解。
二 git add
在日常开发中,最常用的就是git add file,git add ., git add -A几个命令,用于提交文件到数据暂存区。
2.1 git add -u
git add -u <==> git add –update
提交所有被删除和修改的文件到数据暂存区
2.2 git add .
git add .提交所有修改的和新建的数据暂存区
2.3 git add -A
git add -A <==>git add –all
提交所有被删除、被替换、被修改和新增的文件到数据暂存区
三 cherry pick
3.1 使用场景
对于多分支的代码库,将代码从一个分支转移到另一个分支是一种比较常见的需求。这时分两种情况。一种情况是,需要另一个分支的所有代码变动,那么就采用合并()。另一种情况是,我们只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。
3.2 使用方式
命令的作用,就是将指定的提交(commit)应用于其他分支。
git cherry-pick
其中,commitHash是我们提交代码到git时对应的hash值。例如下面是我在本地通过git log查看的,下面的commit ff445062b1424c40bae6b7eb0e639203491031a6, ff445062b1424c40bae6b7eb0e639203491031a6就是commitHash。
commit ff445062b1424c40bae6b7eb0e639203491031a6
Author: xxx
Date: Mon Mar 8 18:56:19 2021 +0800
增加demo应用的k8s编排示例文件
commit 363bebdd49cd4f7f3799857d4af51fc256145593
Author: xxx
Date: Mon Mar 8 17:33:56 2021 +0800
cherry-pick类似于一个定制化的merge,它可以把其它分支上的commit一个个摘下来,合并到当前分支。
当有多个commit要合并到master分支时应该怎样操作呢?一个个的执行显然不合适。所幸的是,git提供了一个区间操作方法。命令如下:
git cherry-pick commit1..commit10
但有一点需要注意,这是一个左开右闭的操作,也就是说,commit1不会被合并到master分支,而commit10会合并到master中。