写点什么

Git 命令: add、cherry pick

发布于: 2021 年 05 月 13 日
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 使用场景

对于多分支的代码库,将代码从一个分支转移到另一个分支是一种比较常见的需求。这时分两种情况。一种情况是,需要另一个分支的所有代码变动,那么就采用合并(git merge)。另一种情况是,我们只需要部分代码变动(某几个提交),这时可以采用 Cherry pick。

3.2 使用方式

git cherry-pick命令的作用,就是将指定的提交(commit)应用于其他分支。

git cherry-pick <commitHash>
复制代码

其中,commitHash 是我们提交代码到 git 时对应的 hash 值。例如下面是我在本地通过 git log 查看的,下面的 commit ff445062b1424c40bae6b7eb0e639203491031a6, ff445062b1424c40bae6b7eb0e639203491031a6 就是 commitHash。

commit ff445062b1424c40bae6b7eb0e639203491031a6Author: xxx <xxx@xxx.com>Date:   Mon Mar 8 18:56:19 2021 +0800
增加demo应用的k8s编排示例文件
commit 363bebdd49cd4f7f3799857d4af51fc256145593Author: xxx <xxx@xxx.com>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 中。


发布于: 2021 年 05 月 13 日阅读数: 10
用户头像

磨炼中成长,痛苦中前行 2017.10.22 加入

微信公众号【程序员架构进阶】。多年项目实践,架构设计经验。曲折中向前,分享经验和教训

评论

发布
暂无评论
Git命令: add、cherry pick