• github fork后的pull和保持同步


    前言

    对github上的某个项目贡献自己的修改,但自己可能并没有那个仓库的权限,那要如何操作呢?git的机制和svn还是有些区别的,本文做些记录。

    思路1

    clone项目到本地,有修改之后,直接提交到原作者仓库

    思路2

    forck项目到自己的仓库,然后进行修改,并把修改的内容推送到原作者仓库。

    尝试过第一种思路会报权限不足,本篇记录第二种思路

    本文示例

    原作者仓库地址:https://github.com/mr-kelly/KSFramework

    自己Fork后的地址:https://github.com/zhaoqingqing/KSFramework/


    操作环境

    拉取方式:使用https而非ssh

    windows 7 x64

    TortoiseGit 2.2.0.0

    git version 2.10.0.windows


    Fork并Pull给原作者

    当自己修复原作者的一些bug之后,希望把这个修改push给原作者。

    git重新定位到自己仓库

    当使用git clone 远端的项目到本地之后,要如何把这个地址指向自己的仓库呢?又为什么要指向自己仓库呢?

    1、指向自己的仓库,自己拥有提交和push权限

    2、可以不用重新git clone一份资源下来啦。


    通过修改远端,类似于SVN的重新定位,就是修改远端的地址。

    我把远端的地址换成是我github地址,并点击确定。

    image

    pull request给原作者

    1、当把远端地址改成自己的仓库地址之后,就有权限提交了,可以和平时一样进行commit和push

    2、推送到自己的远端之后,如果你想把这个修改 pull 给原作者,在网页版可以看到一个 New pull request 的按钮,点击它

    image


    3、点击之后,会出现你要推送的修改,查看无误之后,可以点击 “ Create pull request

    image


    4、接下来在原作者的仓库的 pull request,就会出现你pull的修改,等待原作者通过之后,你的代码就被合并了。

    image

    保证fork仓库的同步

    上述方法是fork原作者的仓库,而当原作者的代码有更新,我们要如何把作者同步到自己的仓库呢?

    添加原作者地址

    image

    此步骤用于更新原作者的修改,保证库中的部分代码和原作者一样。


    同步原作者的修改到自己仓库

    1、使用git pull(拉取)原作者的新修改之后,打开TortoiseGit的同步窗口

    2、选择 远端分支,在“将推送的提交”选择要推送的分支

    3、点击推送,会自动添加此次的注释,一般都是“Merge xxx”

    4、做完以上三步,你就把原作者的修改内容同步到自己的仓库了

    image


    更多

    直接提交到原作者仓库遇到的问题

    如果你在clone之后直接提交到原作者仓库时,报权限不足,那么建议使用fork 后 push的方式,即本文所使用的方式

    git.exe push -v --progress "origin" master:master
    
    remote: Permission to mr-kelly/KSFramework.git denied to zhaoqingqing.
    fatal: unable to access 'https://mr-kelly@github.com/mr-kelly/KSFramework.git/': The requested URL returned error: 403
    Pushing to https://mr-kelly@github.com/mr-kelly/KSFramework.git


    参考资料:http://blog.csdn.net/huutu/article/details/51831647


    关闭Pull Request

    如果 pull的代码有问题,或者想修改,可以对pull request进行关闭

    1、点击Pull requests,找到自己要close的那条记录

    2、点击记录进入详细页面,拉到底部,点击  Close pull request

    image

  • 相关阅读:
    array_merge
    漏斗模型
    3 破解密码,xshell连接
    2-安装linux7
    1-Linux运维人员要求
    17-[模块]-time&datetime
    16-[模块]-导入方式
    Nginx服务器
    15-作业:员工信息表查询
    14-本章总结
  • 原文地址:https://www.cnblogs.com/zhaoqingqing/p/5959831.html
Copyright © 2020-2023  润新知