zoukankan      html  css  js  c++  java
  • git命令详解( 四 )

    此篇为git命令详解的第四篇,话不多说,我们直接上知识点好吧

       git Push

      偏离的工作

      

    gitPush:

      此命令负责将你的变更上传到指定的远程仓库,并在远程仓库上合并你的新提交记录。一旦 git push 完成, 你的朋友们就可以从这个远程仓库下载你分享的成果了!你可以将 git push 想象成发布你成果的命令,注意:git push 不带任何参数时的行为与 Git 的一个名为 push.default 的配置有关。它的默认值取决于你正使用的 Git 的版本

    执行命令:git push

     

    好了,git push 命令没什么可以提交的

    我们接下来看一个比较复杂一点的问题

    偏离的工作:

    假设你周一克隆了一个仓库,然后开始研发某个新功能。到周五时,你新功能开发测试完毕,可以发布了。但是 —— 天啊!你的同事这周写了一堆代码,还改了许多你的功能中使用的 API,这些变动会导致你新开发的功能变得不可用。但是他们已经将那些提交推送到远程仓库了,因此你的工作就变成了基于项目旧版的代码,与远程仓库最新的代码不匹配了。

    这种情况下, git push 就不知道该如何操作了。如果你执行 git push,Git 应该让远程仓库回到星期一那天的状态吗?还是直接在新代码的基础上添加你的代码,异或由于你的提交已经过时而直接忽略你的提交?

    因为这情况(历史偏离)有许多的不确定性,Git 是不会允许你 push 变更的。实际上它会强制你先合并远程最新的代码,然后才能分享你的工作。

    下面我们看一下实际的例子

    执行命令:git Push

    看见了吧?什么都没有变,因为命令失败了!git push 失败是因为你最新提交的 C3 基于远程分支中的 C1。而远程仓库中该分支已经更新到 C2 了,所以 Git 拒绝了你的推送请求

    那该如何解决这个问题呢?很简单,你需要做的就是使你的工作基于最新的远程分支。

    有许多方法做到这一点呢,

    方案一

    不过最直接的方法就是通过 rebase 调整你的工作。咱们继续,看看怎么 rebase!

    执行命令:git fetch

            git rebase o/master

         git push

    我们用 git fetch 更新了本地仓库中的远程分支,然后用 rebase 将工们的工作移动到最新的提交记录下,最后再用 git push 推送到远程仓库。

     方案二

    还有其它的方法可以在远程仓库变更了以后更新我的工作吗? 当然有,我们还可以使用 merge

    尽管 git merge 不会移动你的工作(它会创建新的合并提交),但是它会告诉 Git 你已经合并了远程仓库的所有变更。这是因为远程分支现在是你本地分支的祖先,也就是说你的提交已经包含了远程分支的所有变化。

    执行命令:git fetch

         git merge o/master

         git push

     

    方案三

    很好!但是要敲那么多命令,有没有更简单一点的?

    当然 —— 前面已经介绍过 git pull 就是 fetch 和 merge 的简写,类似的 git pull --rebase 就是 fetch 和 rebase 的简写!

    让我们看看简写命令是如何工作的。

    执行命令:git pull --rebase

         git push

     方案四

      我们也可以使用git pull 来解决这个问题

    执行命令:git pull

         git push

    偏离的历史是非常重要的一部分,希望大家能好好看一下子

  • 相关阅读:
    vue--todolist的实现
    vue--使用定时器的问题
    vue--动态路由和get传值
    vue--非父子组件之间的传值
    Atitit 图像处理之仿油画效果 Oilpaint油画滤镜 水彩画 漫画滤镜 v2
    Atitit 图像处理 公共模块 矩阵扫描器
    Atitit 文档资料管理同步解决方案
    Atitit 拦截数据库异常的处理最佳实践
    Atitit 数据处理查询 中的异常标准化草案 jpa jdbc hb  oql规范attilax总结
    Atitit oodbms的查询,面向对象的sql查询jpa jpql hql
  • 原文地址:https://www.cnblogs.com/suihang/p/10521140.html
Copyright © 2011-2022 走看看