zoukankan      html  css  js  c++  java
  • GitHub fork 合作开发 快速实现版

    目录

    一 预备条件

    回到目录

    二 fork项目

    • 浏览器登陆自己的GitHub帐号,打开你要fork的项目地址,如:https://github.com/southday/devtoolstest
    • 点击右上角 Fork,如图:

    • fork项目后,你就可以在自己的Repositories中看到刚才fork的项目,点击进入该项目

    回到目录

    三 将项目clone到本地

    • 打开devtoolstest项目后,点击右边绿色框的“Clone or download”,复制项目git地址

    • 运行 Git Bash(也可以使用Git GUI),命令行进入到你要把项目clone到的位置,在该目录下执行命令:
    • >git clone https://github.com/lcxv/devtoolstest.git

    关于命令行进入/退出/切换目录,简要介绍如下:
    • cd 目录名 // 表示进入指定目录,支持相对路径和绝对路径
    • cd .. // (2个点)表示退回到上一级目录
    • cd .  // (1个点)表示进入当前目录
    • pwd // 显示当前所在目录
    • ls // 展示当前目录下的内容
    更多命令请看:Linux 命令大全

    四 push代码到自己的仓库

    • 进入到devtoolstest/目录下,创建:Test.java,编写输出Hello world的代码(或者在其他地方写好,拷贝到该目录下也行)
    • 执行命令:>git add Test.java
    • 执行命令:>git commit -m "添加 Test.java"
    • 执行命令:>git push origin master
    • 注:如果你之前没在本地Git for windows上登陆过GitHub,那么会提示你输入用户名、密码进行登陆;
    • 注:关于git add、commit、push等命令的详细解释及相关概念,需要自行查阅资料,可以参考:Git教程 - 廖雪峰的官方网站
    • >git lol 命令是用于查看项目提交、合并等记录,默认没有这个命令,是通过alias命令配置别名产生的,如果你想用该命令,需要先执行下面的命令进行别名设置:
    • >git config --global alias.lol "log --graph --decorate --pretty=oneline --all --abbrev-commit"

    • 显示提交成功后,打开浏览器,看看自己的devtoolstest项目(刷新一下页面),如我的地址是:https://github.com/lcxv/devtoolstest

    • 点击 Test.java,就可以看到你之前提交的内容:

    回到目录

    五 通过pull request提交代码

    • 第4步结束,你的内容还只是提交到了你自己的repo上,并没有提交到主repo(即你Fork的repo)
    • 把页面切换到 “Pull requests”,然后 New pull request

    • 从 哪里(源)merge 到哪里(目的),这个根据具体情况选择,本例中是要把之前在lcxv/devtoolstest/中的Test.java merge 到 southday/devtoolstest/中,如下:

    • 写上 Title 和 Write,然后 Create pull reques

    • 然后对方(主repo)就会有关于你的 pull request,如下:

    • 对方觉得你写的内容不错,就会同意你的请求,把代码合并到主repo中

     

    回到目录

    六 通过本地配置upstream来同步更新主repo的内容

    • 主repo中添加了一个文件“southday-add.md”,现在我们要在本地中同步该内容
    • 先获取主repo项目的git地址,如本例中,主repo项目git地址为:https://github.com/southday/devtoolstest.git
    • 命令行进入到本地仓库目录,然后执行下面的命令进行remote配置:
    • >git remote add upstream https://github.com/southday/devtoolstest.git
    • 然后执行命令:>git remote -v 检查是否配置成功,下面出现了 upstream 以及对应的主项目git地址,说明配置成功

    • 执行命令:>git pull upstream master 来获取主repo中添加的“southday-add.md”文件

    • 如果主repo不是添加文件,而是修改了原文件,比如修改了:"README.md" 文件
    • 那么执行命令:>git fetch upstream 来更新修改内容

    • 执行到这里,主repo的改动已经同步到了你的仓库中了(本地 & 远程),你可以刷新浏览器看看 lcxv/devtoolstest/中的内容有没有变

    回到目录

    七 通过主repo创建pull request来同步更新主repo的内容

    • lcxv 浏览器访问自己的repo(https://github.com/lcxv/devtoolstest),然后点击点击 New pull request,如下:

    • 第5步相反,我们现在是要将 southday/devtoolstest/中的内容 推给 lcxv/devtoolstest/,所以需要修改推送方向,如图:

    • 源改为:southday/devtoolstest 后,页面会自动刷新,然后提示你:There isn’t anything to compare. 这是因为你没还没有修改目的仓库,源->源,肯定没东西可更新的,这时,点击稍微右上角的“compare across forks”,再将目的仓库改为:lcxv/devtoolstes

    • 接下来的操作和第5步中的类似,创建 pull request 后,可以 Merge pull request

    • 这样,你远程仓库中的内容就得到了同步,接下来用自己的远程仓库去同步本地仓库的内容,在本地仓库下执行命令:
    • >git fectch origin
    • >git pull origin master

    回到目录

    八 后记

    至此,GitHub fork 合作开发 快速实现版结束,需要注意:

    • 本例中只讲了怎么操作,却没讲为什么这样做,所以需要自己去学习Git的相关知识
    • 参与者一般是没有权限把代码直接 push 到 主repo的,大家都是走 pull request流程,这样多了一个审核步骤也比较稳妥

    参考内容:

    转载请说明出处,have a good time! :D

    回到目录

  • 相关阅读:
    周记【距gdoi:133天】
    tarjan
    1040: [ZJOI2008]骑士
    次小生成树 最小度限制生成树
    2014.12.12 生成树
    bzoj 3217: ALOEXT
    Segmentation models 是一个基于PyTorch的图像分割神经网络-------------------->>>>实例测试
    venv创建虚拟环境
    ubuntu16.04-arm版 下载和编译pytorch
    segmentation_models_pytorch库学习
  • 原文地址:https://www.cnblogs.com/southday/p/10010876.html
Copyright © 2011-2022 走看看