合并其他分支的commit到当前分支

# 一次转移多个提交记录

$ git cherry-pick <hash a> <hash b>

# 按照提交记录区间合并代码. 必须按照正确的顺序放置:提交 hashA 必须早于提交 hashB,否则命令将失败,但不会报错。
$ git cherry-pick hashA..hashB

### 注意,在git中,区间为左开右闭
# 使用上面的命令,提交 hashA 将不会包含在 Cherry pick 中。如果要包含提交 A,可以使用下面的语法
$ git cherry-pick hashA^..hashB 

合并当前分支的多条commit

#注意区间左开右闭,若要包含startpoint,则应为startpoint^
$ git rebase -i [startpoint] [endpoint]
$ git rebase -i HEAD~3 [上个总是出问题,所以我们用这个吧,3指的是从head向前数三个]
#回车后进入vi界面 commit前面为指令,含义如下
p, pick: 保留该 commit。
r, reword: 保留该 commit,可以修改 commit 的注释。
e, eidt: 保留该 commit,但停下来修改该 commit (不仅仅是注释),可以用来解决 merge 冲突。
s, squash: 将该 commit 和 前面一个 commit 合并。
f, fixup: 将该 commit 和 前面一个 commit 合并,但不保留该提交的注释信息。
x, exec: 执行 shell 命令。
d, drop: 丢弃该 commit。

#将要合并的commit改为 squash

#保存退出

#然后会进入commit message 的编辑界面

#只保留一个

#保存退出

#若要提交到远程仓库,须-f强制
git push -f origin branch_name

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐