git push -f 实战使用

Git Push

git 常用命令流程图如下:

git push命令用于将本地分支的更新,推送到远程主机。

$ git push <远程主机名> <本地分支名>:<远程分支名>git push origin lhf/dev/1.0

如果省略远程分支名,则表示将本地分支推送与之存在”追踪关系”的远程分支(通常两者同名),如果该远程分支不存在,则会被新建。

$ git push origin master上面命令表示,将本地的master分支推送到origin主机的master分支。如果后者不存在,则会被新建。
git push
是把本地的所有分支内容 推送到 匹配的远程分支

Git Push -f

一种情况

springboot 微服务项目中,我在更新一个模块的接口,改好后,git commit,git push 到远程分支,打包部署到服务器,但是验证出了 bug ,这时候就要改动刚写的接口,改完后,为了避免出现太多的commit会在本地合并 又修改后的提交记录到之前的提交,但是合并之后,就会和远程的分支commit记录产生冲突,这时候git push 是会报错的,必须使用git push -f 强制覆盖掉远程分支的内容

如果远程主机的版本比本地版本更新,推送时Git会报错
要求先在本地做git pull合并差异然后再推送到远程主机。这是正常合理的代码提交流程。

如果你一定要推送,可以使用–force选项。

注意

使用–force选项,导致远程主机上更新的版本被覆盖。

如果没有指定 强制push的 分支,可能会把所有的本地分支强制覆盖远程分支,同事之前推送的代码会被你抹掉。如果大家都不小心更新你的版本,OMG,前功尽弃。 除非你很确定要这样做,否则应该尽量避免使用–force选项。

在 idea 的 terminal 中 git push 是把当前所在的分支,推送到远程分支
在 a 分支也可以  git push origin b  将本地的 b 分支 推送到 远程 b 分支

安全的使用 –force 选项

只给自己用,要坑就坑自己

在工作的时候,通常会开一个分支出去做,但做完发现Commit 太过琐碎,便会想使用Rebase 来整理一下这个分支。虽然Rebase 是修改历史没错,但因为这个历史影响的范围只有我自己这个分支,所以并不会影响其它人正常使用:

$ git push origin features/my_branch -f 只把当前分支强制推送到远程分支

这样只会强制更新features/my_branch这个分支的内容,不会影响其它分支。

点击操作 idea 中 git



可以选择把确定的分支push 或者 push -f

设置保护机制

但总是有人可能不小心使用了-f参数来Push,GitHub网站有提供保护机制,可以避免某个分支被Force Push。请到仓库的「Settings」页签,左边选择「Branches」,添加保护的规则;

同样,码云gitee.com等有也有样的设置(不过要付费企业项目);

不推荐

可以把远程的分支先删掉,然后本地改好后,推送到远程分支

git push -f 慎用相关推荐

  1. 由git push -f引发的程序员枪击血案

    从程序员枪杀案谈git push -f 前段时间看到的消息: 美程序员枪击4同事 竟因代码不写注释? [辟谣]因代码不规范,码农枪击4名同事一文 程序员不老老实实的当键盘侠,搞起自己的同事? 目前,码 ...

  2. git push -f

    有的时候使用GIT工作时,会遇到一下这种问题, Pushing to git@github.com:519ebayproject/519ebayproject.git To git@github.co ...

  3. git tag创建、远程推送、回退以及强推push -f

    一.给本地仓库分支打轻量级tag标签 1.在Git中打标签非常简单,首先,切换到需要打标签的分支上: $ git branchdevwhdgray * masteroptimize_sel_drive ...

  4. git push 如何同时推送至两个git仓库

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | lucktian 来源 | cnblogs.c ...

  5. git push error. ! [rejected] master - master (non-fast-forward)

    错误提示: Cheetah@xxxx MINGW64 /e/Projs/enft/data/cv_key_frame (master) $ git push To github.com:Anthony ...

  6. git push代码出现push rejected错误

    git push代码出现push rejected错误 第一步:先使用命令 git pull origin master --alow-unrelated-histories 第二步:使用-f参数强制 ...

  7. Git——git push 错误[ ! [rejected] master - master (non-fast-forward)]解决方案

    问题描述 git push -u origin master To https://github.com/XXX/XXX.git! [rejected] master -> master (no ...

  8. 前端学习(1854)vue之电商管理系统电商系统之git push后出现错误 ![rejected] master -> master(non-fast-forward) error:failed t

    ! [rejected]        master -> master (non-fast-forward) error: failed to push some refs to 'https ...

  9. git push nothing to commit, working tree clean

    错误原因 在使用git push的时候报Your branch is up to date with 'origin/master'. nothing to commit, working tree ...

最新文章

  1. 基础笔记6(exception)
  2. 设计模式(二十四)解释器模式
  3. 一篇文章搞懂前端学习方法与构建知识体系,怎么做自己的职业规划
  4. 网络-HTTP请求跨域访问控制
  5. 每天Leetcode 刷题 初级算法篇-缺失数字
  6. 2022年电子电路铜箔行业上下游产业链分析预测及市场规模供需平衡度研究
  7. 一个简单的HTML网页 、个人主页网页设计(HTML+CSS)
  8. 【经验分享】U盘软刷映泰TB250-BTC刷魔改BIOS上6789代CPU,另解决开机转一下后停止问题
  9. python面板数据模型操作步骤_面板数据模型估计一般要做哪些步骤?
  10. 企业必须面对云计算时代
  11. emc re 整改 超标_EMC测试及整改对策.ppt
  12. 第二章 核心动画渲染框架
  13. 一个Sqrt函数引发的血案
  14. JavaScript:实现将 base64 字符串转换为字节数组算法(附完整源码)
  15. Qt多线程使用 和 信号与槽传参 需要注意的问题
  16. tushare实战分析美元黄金与美债收益率、利率的关系
  17. 2022年模式识别高峰论坛学习与个人感悟
  18. python循环语句打印三角形_python利用for循环打印各种三角形
  19. jQuery基础二DOM操作
  20. 数字化变革与冲突下,如何运用 BI 打造经营分析系统!

热门文章

  1. move_base源码解析
  2. 创客exynos-fs4412系统移植-(uboot,内核,文件系统)
  3. 如何进行简单的功能仿制(网页制作)
  4. 第二周:机器学习策略(2)(ML Strategy (2))
  5. C#实现对Sqlite数据库的通用操作
  6. 毕业设计-基于MATLAB的含噪语音信号降噪处理方法的研究与实现
  7. 会声会影三花聚顶显威力
  8. 评价方法-层次分析法确定指标权重
  9. xhprof php5.5,Thinkphp5中配置XHProf性能分析工具
  10. 3DMAX游戏角色身体建模教程