• SourceTree的基本使用---团队开发/参与开源


    1、实践入门-团队开发

    如果你看到第二部分关于“参与开源”的内容,而你的需求是团队开发,你会发现几个不方便的地方:

    1.1、组长建项目,组员每次提交,都需要组长审查同意merge

         如果你觉得麻烦,组长可以将组员添加到collaborator中,组员可以控制是否直接merge到组长的远程仓库

    1.2、fork组长的项目到组员的远程仓库之后,以后不能随之组长仓库更新而更新

           可以将组长仓库的项目克隆到你电脑本地,比如sourceTree、idea。随时更新到最新版

    2、实践入门-参与开源 Fork&pull request

    转自 https://www.jianshu.com/p/be9f0484af9d

    (以下以 [https://github.com/octocat/Spoon-Knife] 举例)

    2.1. 首先打开上述页面,然后点击右上角“fork”按钮。fork意味着将他人的仓库复制到我们账号中。如果我们想要参与开源项目,首先要fork下别人的项目,然后在我们复制过来的仓库中,对别人的代码做修改。

    fork

    2.2. fork完之后,我们用上文提到的方法,将自己账号中的[Spoon-Knife]仓库克隆(clone)到本机SourceTree中,并在稍作更改后,推送(push)到自己账号的远程仓库
     2.2.1 在SourceTree中建立新仓库,并复制URL
    clone Spoon-Knife

     2.2.2 在本地仓库中稍作更改(如图我新建了一个Test)
    Example

     2.2.3 通过上文方法推送(Push),登陆Github,进入Spoon-Knife仓库,发现test已经上传到我们账号的远程仓库Spoon-Knife当中
    Success

    2.3. 上传完后,我们点击Github branch旁的绿色按钮
    Pull Request 1

    2.4. 之后我们会进入一个Compare页面,这个页面用于比较作者仓库与我们仓库的文件的不同。Base fork:指的是作者仓库目录地址;Head fork:指的是我们账号中fork后所产生的仓库地址。我们点击Create pull request即可
    2.5. 然后我们会进入一个Pull Request界面,在这里,我们可以输入自己更改的原因/更改的内容。这里写的文字会显示给源代码作者,如果作者接受了我们的推送请求(pull request)后,我们的代码将会上传到源代码作者的仓库内,成功为开源做贡献。如果作者拒绝了我们的推送请求(pull request)后,我们的代码将不会上传到源代码作者的仓库内。
    Pull Request 2

    2.6. 我们点击Create Pull Request即可,系统将自动跳转到等待回复的页面,这里会显示作者是否接受我们的代码更改。

    3、SourceTree&Git部分名词解释

      1. 克隆(clone):从远程仓库URL加载创建一个与远程仓库一样的本地仓库
      2. 提交(commit):将暂存文件上传到本地仓库(我们在Finder中对本地仓库做修改后一般都得先提交一次,再推送)
      3. 检出(checkout):切换不同分支
      4. 添加(add):添加文件到缓存区
      5. 移除(remove):移除文件至缓存区
      6. 暂存(git stash):保存工作现场
      7. 重置(reset):回到最近添加(add)/提交(commit)状态
      8. 合并(merge):将多个同名文件合并为一个文件,该文件包含多个同名文件的所有内容,相同内容抵消
      9. 抓取(fetch):从远程仓库获取信息并同步至本地仓库
      10. 拉取(pull):从远程仓库获取信息并同步至本地仓库,并且自动执行合并(merge)操作,即 ** pull=fetch+merge **
      11. 推送(push):将本地仓库同步至远程仓库,一般推送(push)前先拉取(pull)一次,确保一致
      12. 分支(branch):创建/修改/删除分枝
      13. 标签(tag):给项目增添标签
      14. 工作流(Git Flow):团队工作时,每个人创建属于自己的分枝(branch),确定无误后提交到master分枝
      15. 终端(terminal):可以输入git命令行
  • 相关阅读:
    2017 ACM-ICPC 沈阳区域赛记录
    TopCoder SRM 701 Div2 Problem 900 ThueMorseGame(博弈+预处理)
    SPOJ LIS2
    Codeforces 696E ...Wait for it...(树链剖分)
    Codeforces 868F Yet Another Minimization Problem(分治+莫队优化DP)
    Flask视图之CBV示列
    Flask内的特殊装饰器
    Flask蓝图
    Flask常用实列化参数
    Flask常用路由参数
  • 原文地址:https://www.cnblogs.com/SuMeng/p/8275577.html
Copyright © 2020-2023  润新知