• Github中进行fork后,原仓库更新了如何与原仓库同步


    我们经常在Github中Fork别人优秀的项目(在自己的GitHub下面生成一个repository),如果原仓库作者或组织更新仓库,此时你Fork的项目并不会更新,如果我们想要更新操作,该如何操作?在Gitee上面操作比较便捷,有一个pull按钮。

    这里有两种方式:
      1. 在GitHub上面直接发起pull request;
      2. 在本地仓库使用命令行操作;

    下面就这两种方式进行介绍:

    方式一:在GitHub上面直接发起pull request

    这个方式适合新手,对git命令和原理不是很清楚的。按照下面的步骤进行操作,就拿spring-boot项目的Fork为例!

    1. 打开fork 过来的项目如下所示:
      在这里插入图片描述

    2. 点击new pull request
      在这里插入图片描述

    3. 在进入的界面, 后进行将左边的设置为你自己的仓库, fork 过来的源在右边.
      在这里插入图片描述

    4. 当选择完后会变成下图:
      在这里插入图片描述

    5. 接下来, 将其展示出可以调整状态: 右边改为源fork地址
      在这里插入图片描述

    6. 就会出现变更数据:
      在这里插入图片描述

    7. 点击create pull request
      在这里插入图片描述

    8. 进行数据的合并:
      在这里插入图片描述

    9. 最后合并:
      在这里插入图片描述
      到此就完成了:
      在这里插入图片描述
      在这里插入图片描述

    方式二:在本地仓库使用命令行操作;

      该方式应该是使用的比较多的方法,因为在本地一般都会有一个仓库的。
    参考文档:
    问题场景:

    新公司要求所有的代码提交都要先通过自己的库提交到主repo上去,所以先在gitlab网页上fork出一个自己的库,在本地修改完代码后提交到远程自己库上,然后在gitlab网页上发起一个merge request请求,然后等待主repo主人review,同意之后合入。

    问题是同时也有其他同学在主repo合入代码,所以我要定期和主repo保持同步。

    开始我的想法是

    gitlab网页上提供了git pull这样的按钮,这样点一下就能让自己fork的库和原始库保持同步。然后自己在本地git pull,就能间接和原始的库保持同步。

    但是我没找到这个按钮。但是我找到了下面这篇文章,照着操作之后,一步一步跟踪观察发现,每一步都能成功。

    整体思路如下:

    在自己的本地添加主repo为上游代码库,注意只是配置原仓库的路径,并没有真正clone原仓库,

    然后将远程主repo同步到自己本地的机器,

    然后本地的机器再push到自己的远程的fork库

    所有的操作都要在本地命令行完成

    下面是我转载的,照着这个操作,完全没问题:
    我们在进行Github协同开发的时候,往往会去fork一个仓库到自己的Github中,过一段时间以后,原仓库可能会有各种提交以及修改,很可惜,Github本身并没有自动进行同步的机制,这个需要我们手动去执行,现在我来演示一下如何进行自己的仓库和原仓库进行Gith同步的操作。

    (1)我使用终端 命令行的方式在Mac中来操作。首先在终端中配置原仓库的位置。进入项目目录,执行如下命令:查看你的远程仓库的路径。

    (2)配置原仓库的路径:

    下面这步操作即添加主repo为上游代码库

    注意一定要cd到你自己fork出来的库里面去,比如工程名叫luoluo,那要先cd到luoluo中去,然后才能操作

    (3)再次查看远程目录的位置:

    (4)抓取原仓库的修改文件:

    执行效果如下所示

    (5)切换到master分支。

    (6)合并远程的master分支:

    下面这行代码执行结束之后,本地代码会立刻和主库保持同步,非常神奇

    (7)此时,你的本地库已经和原仓库已经完全同步了。但是注意,此时只是你电脑上的本地库和远程的github原仓库同步了,你自己的github仓库还没有同步,此时需要使用“git push”命令把你本地的仓库提交到github中。

    这是华丽的分割线

    其实(4)(5)(6)可以合并成一条命令

    git pull upstream master

    第一个参数pustream 表示远程主repo

    第二个参数master 表示自己fork库的master分支

    这个是公司文档上写的,并不是从网上找来的

    为了说清楚这个问题,亲自做了一张图

  • 相关阅读:
    Java读写锁(ReentrantReadWriteLock)学习
    水平拆分和垂直拆分理解(未完)
    MySQL 主从复制
    sharding-JDBC 实现读写分离
    Linux查看程序端口占用情况
    sharding-jdbc 实现分表
    MySQL explain
    MySQL的七种join
    MySQL建立高性能索引策略
    Nginx企业级优化
  • 原文地址:https://www.cnblogs.com/gqzdev/p/11900362.html
Copyright © 2020-2023  润新知