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. 计算机病毒的八个特征,计算机病毒的五个特征- 1:.单项选择题(8)
  2. (二)操作系统设计技术知识重点笔记
  3. Java_Notes_基础排序总结与对比
  4. Codeforces Round #208 (Div. 2)D. Dima and Hares
  5. Linux centosVMware Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl
  6. 【Hadoop Summit Tokyo 2016】Spark上可扩展的深度学习
  7. 槽点才是G点,LiveVideoStack主编是如何吐槽内容的?
  8. java中的lombok_如何在Java中使用Lombok删除样板设置器吸气剂
  9. std c++ 获取运行时间封装
  10. 编程中怎样将列表中数字排序_R编程中的列表
  11. 父shell和子shell
  12. dvwa linux安装教程,CentOS 7 + DVWA 安装搭建过程
  13. 【XJTUSE计算机图形学】第四章 真实感图形学(1)——–颜色视觉
  14. html目录链接怎么做,word目录超链接怎么做
  15. 热身赛-巴西5-1坦桑尼亚 卡卡传射罗比两破门
  16. Ol4网格生成以及优化
  17. nginx根据项目名实现内网地址转发
  18. 【delphi】各大平台短信功能控件实现(含源代码、演示程序、帮助)
  19. 第四十九回 七星坛诸葛祭风  三江口周瑜纵火
  20. W5500的以太网电路,正常线序连接的话可能必须做过孔交叉线序,能否在线路上做交叉处理?

热门文章

  1. 修复浏览器首页被hao123劫持的问题(亲身经历)
  2. android爱哥的日历,安卓版人生日历日子使用方法
  3. Easyrecovery16免费的电脑硬盘恢复数据软件
  4. 【proteus】蜂鸣报警器--proteus仿真光线暗黑报警
  5. SpringCloud 第八期 Sentinel 熔断限流
  6. 详解Javascript的10大常用设计模式
  7. 从经济学博士到爬坑机器学习十年,微软首席数据科学家谢梁的AI故事
  8. 将win10 v2004-20H2-21H1更新到 Win10 21H2
  9. 渠道反作弊之常见行业手段
  10. 致Java开发者:Java外包是如何转正华为的?大厂面试必备技能