当前位置:   article > 正文

Git---本地仓库有多条commit,如何push某一条commit到远端_git push 指定commit

git push 指定commit

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

$ git push <remotename> <commit SHA>:<remotebranchname>

举例如下:

git push origin 248ed23e2:branchname

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

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

图一

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

 此时可以使用:

  1. // 最下面的 一条为最老的一条,优先推送
  2. git push origin 9267dd9:test
  3. // 接着第二条同样的命令,commit换掉即可
  4. git push origin 9267dd9:test
  5. // ... 依次按顺序一个一个提交...

第二种方式,采用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. 创建临时分支

  1. // localbranch 为本地分支名 origin/feat 为远程目标分支
  2. git checkout -b localbranch --track origin/feat

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

git cherry-pick fcf254130f

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/609780
推荐阅读
相关标签
  

闽ICP备14008679号