【随笔】Git 高级篇 -- 远程服务器拒绝 git push & reset(三十二)

请添加图片描述

  • 💌 所属专栏:【Git】

  • 😀 作  者:我是夜阑的狗🐶

  • 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询!

  • 💖 欢迎大家:这里是CSDN,我总结知识的地方,喜欢的话请三连,有问题请私信 😘 😘 😘

您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!🤩 🤩 🤩

请添加图片描述


前言

  大家好,又见面了,我是夜阑的狗🐶,本文是专栏【Git】专栏的第三十二篇文章;
  这是今天学习到Git 高级篇 – 远程服务器拒绝 💖💖💖,开启新的征程,记录最美好的时刻🎉,每天进步一点点。
  专栏地址:【Git】 , 此专栏是我是夜阑的狗对Git,Gitee等工具使用过程的总结,希望能够加深自己的印象,以及帮助到其他的小伙伴😉😉。
  如果文章有什么需要改进的地方还请大佬不吝赐教👏👏。


一、远程分支

  这里给大家推荐一个好用的 Git在线练习地址。在这练习网站里面也有自己的教程,就让我们一步一步跟着教程学习吧,记录下自己的所感所悟。前面已经简单的学习了远程与本地不一致导致提交冲突如何解决,接下来就让我们看看在实际项目过程中提交遇到远程服务器拒绝是怎么解决的吧。话不多说,让我们原文再续,书接上回吧。

请添加图片描述

1、介绍

  如果你是在一个大的合作团队中工作, 很可能是main被锁定了, 需要一些 Pull Request 流程来合并修改。如果你直接提交(commit)到本地 main, 然后试图推送( push )修改, 你将会收到这样类似的信息:

! [远程服务器拒绝] main -> main (TF402455: 不允许推送(push)这个分支; 你必须使用pull request来更新这个分支.)

  为什么会被拒绝?远程服务器拒绝直接推送(push)提交到 main, 因为策略配置要求 pull requests 来提交更新。我们应该按照流程,新建一个分支, 推送( push )这个分支并申请 pull request,但是你忘记并直接提交给了 main。现在你卡住并且无法推送你的更新。
  那怎么解决呢?新建一个分支 feature,推送到远程服务器。然后 reset 我们的 main 分支和远程服务器保持一致,否则下次 pull 并且他人的提交和你冲突的时候就会有问题.
  从本地的 main 创建一个 feature 分支, 然后重置 mainorigin main 保持一致。

2、示范

  说了这么多,咱们还是看看实际案例吧!

git push origin feature

  这里把带有 C2 修改点的分支 feature 推送到远程仓库中,运行结果如下图所示:

请添加图片描述

3、实战

  从前面了解到具体的实现的步骤,就可以开始实战啦。这里先给大家说一下这个练习网站的一些使用技巧,

  • help 指令

  执行这个命令后就会有个帮助信息的弹窗。

在这里插入图片描述

  • levels 指令

  执行完这个命令之后就能看到关卡目录了。

在这里插入图片描述

  • 目标

在这里插入图片描述

  • 开始结构

在这里插入图片描述

(1)第一种方法

  第一种方法比较繁琐一点,需要通过多次选择分支来完成,接下来就让我们来看看是怎么操作的吧。

  • Step 1、创建分支

  首先在 main 分支创建新的分支 feature

git checkout -b feature

  很简单吧,运行结果如下图所示:

在这里插入图片描述

  • Step 2、推送

  将前面创建好的 feature 分支推送到远程分支。

git push origin feature

  运行结果如下图所示:

请添加图片描述

  • Step 3、选择 main 分支

  重新选中 main 分支进行后续回退的操作。

git checkout main

  运行结果如下图所示:

在这里插入图片描述

  • Step 4、回退分支

  回退 main 分支上的提交记录。

git reset o/main

  运行结果如下图所示:

在这里插入图片描述

  • Step 5、选中 feature

  最后在选中 feature 分支完成目标关卡。

git checkout feature

  运行结果如下图所示:

在这里插入图片描述

(2)第二种方法

  相比于第一种方法,第二种就简洁很多了,通过 reset 命令的 hard 参数回退提交点,接下来就让我们来看看是怎么操作的吧。

  • Step 1、回退 main 提交

  --hard 参数表示重置模式为硬重置,这意味着 Git 会将工作区、暂存区和本地仓库中的文件全部回退到指定状态,没有任何备份,慎用此命令,因为会导致未提交的更改丢失。

  • 硬重置
git reset --hard o/main
  • 软重置

  这里 软重置 是本人联想到的词来形容不带 hard 参数的 reset 命令。

git reset o/main

  运行结果如下图所示:

git

  • Step 2、创建新分支

  在指定的 C2 提交记录上创建新分支。

git checkout -b feature C2

  运行结果如下图所示:

git p

  • Step 3、推送修改点

  将前面创建好的 feature 分支推送到远程分支。

git push origin feature

  运行结果如下图所示:

请添加图片描述

  达成目标之后就会有成功的提示。

在这里插入图片描述


总结

  感谢观看,如果觉得有帮助,请给文章点个赞吧,让更多的人看到。🌹 🌹 🌹

在这里插入图片描述

  也欢迎你,关注我。👍 👍 👍

  原创不易,还希望各位大佬支持一下,你们的点赞、收藏和留言对我真的很重要!!!💕 💕 💕 最后,本文仍有许多不足之处,欢迎各位认真读完文章的小伙伴们随时私信交流、批评指正!下期再见。🎉

更多专栏订阅:



订阅更多,你们将会看到更多的优质内容!!

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-23 04:04:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-23 04:04:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-23 04:04:02       82 阅读
  4. Python语言-面向对象

    2024-04-23 04:04:02       91 阅读

热门阅读

  1. ChatGPT之道:巧用写作技巧

    2024-04-23 04:04:02       35 阅读
  2. 利用H.264码流传输摄像头地理位置信息

    2024-04-23 04:04:02       34 阅读
  3. webpack + ts 搭建 web 应用

    2024-04-23 04:04:02       34 阅读
  4. springboot整合mybatis分页插件不生效问题

    2024-04-23 04:04:02       35 阅读
  5. Linux守护进程

    2024-04-23 04:04:02       37 阅读
  6. Prometheus指标

    2024-04-23 04:04:02       31 阅读
  7. Sentinel

    Sentinel

    2024-04-23 04:04:02      29 阅读
  8. Helm dryRun参数学习

    2024-04-23 04:04:02       37 阅读
  9. 【LeetCode热题100】【贪心算法】跳跃游戏

    2024-04-23 04:04:02       31 阅读
  10. 手机三要素验证不一致的原因有哪些

    2024-04-23 04:04:02       162 阅读