git推送指定的提交到远程分支详细方法

这篇具有很好参考价值的文章主要介绍了git推送指定的提交到远程分支详细方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

默认情况下,git push会推送暂存区所有提交(也即HEAD及其之前的提交)到远程库,实际开发中可能因为功能没有开发完成,但是又必须提交部分修改好的代码就需要用到推送指定commit到远程分支。

第一种方式:

即符合git操作的规则,从最初的commit开始一个一个提交,但是不能实现指定中间某一个commit。(只能按顺序提交)

命令:

git push origin <commit SHA>:[remotebranch]

示例:

// 查看历史提交记录
PS E:\java> git log --oneline
94b005389 (HEAD -> fd) 项目组前后端实现
72887fb85 采购请款前端界面修改1
6bd1d23eb 采购请款前端界面修改
521ca71f9 成品整机association联查生产计划单
e2c8023d5 (origin/fd) 研发工作台布局构思
7e002693a Merge remote-tracking branch 'origin/stage' into fd

// 根据提交顺序一个一个提交
PS E:\java> git push origin 521ca71f9:fd
Enumerating objects: 43, done.
Counting objects: 100% (43/43), done.

第二种方式:

如果想要通过推送某一个特定的提交,但是这个提交之前还有其他的提交,我们可以通过git rebase -i 改变提交的位置,使其之前没有其他提交:

$ git rebase -i 或 git rebase -i a33d521

a33d521用来确定commit范围,表示从此提交开始到当前最新的提交(不包括a33d521)

1.查看历史提交记录

PS E:\java> git log --oneline -3
c944084e8 (HEAD -> fd) 第三次提交
55ad8ab2b 第二次提交
ee5f12d6c 第一次提交

2.将暂存区的提交列出来供我们操作

git rebase -i
git推送指定的提交到远程分支详细方法

顶部的commit提交排列顺序与git log排列相反,最先提交的在最上面。如果我们只想要将c944084e8推送到远端,我们首先可以将其所在行移动到首行(vi下,光标移动到当前行,输入命令:m 0即可),然后保存退出(vi下,输入命令:wq即可),然后按照第一种方式的步骤进行

😃注意:rebase后相应提交的hash码会改变

第三种方式:

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

1.查看当前分支日志

PS E:\java> git log --oneline -4                 
c687fa068 (HEAD -> fd) 第四次提交
c944084e8 第三次提交
55ad8ab2b 第二次提交
ee5f12d6c 第一次提交

2.拉取远程分支创建临时本地分支

localbranch 为本地分支名 origin/fd 为远程目标分支文章来源地址https://www.toymoban.com/news/detail-445976.html

git checkout -b localbranch --track origin/fd

3. 执行cherry-pick,将修改代码的commit同步过来

// 同步commit
PS E:\java> git cherry-pick c687fa068            
[fd2 d7e164670] 第四次提交
 Date: Thu Mar 9 12:08:55 2023 +0800
 1 file changed, 1 insertion(+), 1 deletion(-)
// 查看同步后的commit
PS E:\java\cierp\cierp> git log --oneline -4     
d7e164670 (HEAD -> fd2) 第四次提交
2a715c4e0 (origin/fd) service接口修改
a94c890ba domain字段修改
86f615a8c 修复bug

4.push到远程分支

PS E:\java> git push origin fd2:fd
Enumerating objects: 31, done.
Counting objects: 100% (31/31), done.
Delta compression using up to 12 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (16/16), 1.10 KiB | 1.10 MiB/s, done.

5.删除临时分支

git branch -d fd2

到了这里,关于git推送指定的提交到远程分支详细方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • git命令行推送本地分支到远程仓库

    之前说过Git与IDEA强强联合(HTTPS协议连接)那么如何使用命令行来推送代码呢? 如下图所示为一个基于layui的前端代码: 目录工作区文件: 本地内容就是将这些内容推送到远程仓库 首先使用git命令初始化git本地仓库: git init 创建本地仓库 以出现 .git 命令为参考: 创建git仓

    2024年02月02日
    浏览(61)
  • git合并指定commit——git合并某个特定的提交commit到指定的分支上

    git合并指定commit——git合并某个特定的提交commit到指定的分支上 1、应用场景: 在A分支上提交了一个commit,B分支也同样需要这个commit的代码,为了避免人工复制代码,可以用git的一些操作替代 2、操作步骤 1、在当前A分支(deploy/t),通过 git log 先找到A分支的commit代号( 简

    2023年04月08日
    浏览(76)
  • 整理SourceTree使用方法(拉取、提交、推送、获取、冲突解决、分支管理)

    收藏保存吧,忘记的时候打开来看看 丢弃:放弃未暂缓区的所有修改(工作区中的修改不会添加到版本控制,就是修改的东西不想提交,就直接丢弃) 移除:直接删除文件 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库 提交(commit):将暂存文件上传到本地

    2024年02月05日
    浏览(46)
  • Git 新建分支并推送(push)到远程仓库,合并feature分支到develop分支

    在多人协作的项目中经常需要新建feature分支开发一个新功能,或者是要做一些修改,需要新建一个分支。 创建新分支开发完成之后可能需要暂时需要提交到远程,完全提测完成后再合并到develop主分支。 步骤如下: 新建本地分支 各种改动之后,并且通过一下命令把代码缓存

    2024年02月11日
    浏览(43)
  • Git提交本地代码到,远程分支

    假设正在使用 Git 管理一个名为 \\\"my_project\\\" 的项目,并且想将修改后的代码提交到名为 \\\"feature_branch\\\" 的远程分支。可以按照以下步骤提交修改后的代码:  1. 首先,使用  git branch  命令检查当前所在的分支。如果不在 \\\"feature_branch\\\" 分支上,可以使用  git checkout feature_branch  命

    2024年02月16日
    浏览(39)
  • git操作之pull拉取远程指定分支以及push推送到远程指定分支

    1、将远程指定分支 拉取到 本地指定分支上: 2、将远程指定分支 拉取到 本地当前分支上: 3、将与本地当前分支同名的远程分支 拉取到 本地当前分支上(需先关联远程分支,方法见文章末尾) 在克隆远程项目的时候,本地分支会自动与远程仓库建立追踪关系,可以使用默认

    2024年02月11日
    浏览(70)
  • git将一个远程分支的部分修改提交到另一个远程分支

    将一个远程分支的部分修改提交到另一个远程分支,可以使用 git cherry-pick 命令。这个命令可以选择特定的提交(commit)从一个分支应用到另一个分支。 切换到目标本地分支 : 首先,确保您在您的本地机器上切换到了目标分支(即您想要应用修改的分支)。例如,想将修改

    2024年01月16日
    浏览(52)
  • Git 代码提交到远程主分支后发生冲突或者覆盖

    在提交代码的时候,有两个人,比如叫A与B,现在A从远程主分支master拉了代码到自己本地,本地电脑形成local A与local B分支,然后写了自己的需求代码commit并推送到远程仓库,形成自己的origin A与origin B,然后两个人进行合并请求merge request,请求merge后,master主分支里代码少了

    2024年02月07日
    浏览(69)
  • 【git】Idea撤回本地分支、或远程分支提交记录的各种实际场景操作步骤

    实现效果: 撤回这个未push到远程的记录 操作步骤: 最后一次commit到本地的记录没有了, 记录回到了暂存区 有撤销记录的: 实现效果: 本质,就是重新提交对 第二次提交 删除的操作 撤销后,本地和远程分支上有撤销记录 操作步骤: 无撤销记录的: 实现效果: 远程最后

    2024年02月10日
    浏览(44)
  • git拉取和推送如何指定远程服务器的ssh端口

    家里弄了个嵌入式服务器,里面安装了git,申请了动态公网ip,上行速度40Mbps,可比国内的服务器带宽大多了,所以要好好利用起来。但是由于是动态公网ip,因此做了端口映射,指定端口9999到嵌入式服务器的22端口。如何让git push/pull到自家的git服务器呢?百度了一圈没有答

    2024年02月12日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包