git 合并多个commit
合并其他分支的commit到当前分支# 一次转移多个提交记录$ git cherry-pick <hash a> <hash b># 按照提交记录区间合并代码. 必须按照正确的顺序放置:提交 hashA 必须早于提交 hashB,否则命令将失败,但不会报错。$ git cherry-pick hashA..hashB### 注意,在git中,区间为左开右闭# 使用上面的命令
·
合并其他分支的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
更多推荐
已为社区贡献1条内容
所有评论(0)