默认情况下,git push会推送暂存区所有提交(也即HEAD及其之前的提交),使用下面的命令可以改变此默认行为:

$ git push :

举例如下:

git push origin 248ed23e2:branchname

如果想要只推送某一条提交:

第一种方式,即符合git操作的规则,从最初的commit开始一个一个提交,但是不能实现指定某一个commit,基本满足日常的开发异常情况了(只能按顺序提交)

图一

本地commit了3次提交但是并不想一下push到远程,根据功能或者时间的原因,想一个一个提交

 此时可以使用:

// 最下面的 一条为最老的一条,优先推送

git push origin 9267dd9:test

// 接着第二条同样的命令,commit换掉即可

git push origin 9267dd9:test

// ... 依次按顺序一个一个提交...

第二种方式,采用cherry-pick用新分支去拉取当前分支的指定commit记录,之后推送到当前分支远程仓库实现推送指定历史提交的功能

首先看下cherry-pick的相关介绍:

Git---分支合并之合并分支指定commit提交数据cherry-pick_绝世唐门三哥的博客-CSDN博客现在突然出现一个需求,此时本地分支需要拉取另一个分支test上的某部分代码修改(简单说就是需要合并指定commit记录的文件修改记录到当前分支)这个常用在自己清楚每个分支的对应提交文件,否则可能合并部分代码导致后期项目合并问题!标志,因为它会生成标准化的提交消息,通知用户它是从哪里pick出来的。1. 在被合并的分支上进行查询commit操作。2. 回到主分支后进行操作。https://blog.csdn.net/COCOLI_BK/article/details/128134070比如图一中是原始的分支记录,现在要将第二条记录单独提交到远程分支,即实现提交指定分支记录的功能:(操作前git log自行查看对应的commit hash)

1. 创建临时分支

// localbranch 为本地分支名 origin/feat 为远程目标分支

git checkout -b localbranch --track origin/feat

2.  执行cherry-pick,将修改bug的记录同步过来

git cherry-pick fcf254130f

后续操作就是将临时分支记录推到目标分支!!! 

如果产生冲突,请自行查看上面的cherry-pick文章,有解决办法!!!

文章链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: