前言:

  Pull Request的流程

    1、fork

      首先是找到自己想要pull request的项目, 然后点击fork按钮,此时就会在你的仓库中多出来一个仓库,格式是:自己的账户名/想要pull request的项目的名称

    2、clone

      通过运行命令:git clone git@github.com:当前账户名/要克隆的仓库名.git(反斜杠后面那个是新的仓库的地址),将该仓库克隆到当前的开发环境中

    3、branch

      1、确定分支

        通过在终端运行命令:git branch -a 查看当前所在的分支,通常我们都是在查看分支后在进行代码的修改,这是一个好习惯

      2、创建特性分支

        在应用GitHub修改代码时,我们通常采用的策略是在主分支下面创建一个特性分支,在该特性分支下进行代码的修改然后通过该分支 执行pull request操作,通过命令git checkout -b work master(这其中work为你新建的特性分支,master为你当前所在的分支)创建新的特性分支然后并自动切换。

    4、添加修改

      1、修改工程

        在刚刚新创建的分支下对fork下的工程进行修改

      2、提交修改

        首先使用命令:git diff查看修改的内容是否正确,然后使用命令:git add (要添加的文件) 向仓库中添加文件,之后在执行命令:git commit -m "对这次提交的说明"

      3、创建远程分支

        要从GitHub发送pull request, GitHub那一端中的仓库必须要有一个包含了修改后的代码的分支,所以需要创建一个与刚刚创建的特定分支(修改所在的分支)相对应的远程分支  

        执行命令:git push origin work1(这其中origin为当时fork远程主分支的名称, 一般默许认为是origin,work1为本地工作的特性分支), 然后执行:git branch -a进行查看是否创建成功

    5、发送pull request

      进入到自己的GitHub账户下面,并切换到创建的特性分支下, 然后点击create pull request后,确定没问题,填写相关内容,然后点击send pull request

1、基于git做的协同开发:

  1、初始化项目:git clone 仓库地址(生成仓库文件)

    可以对这个项目名进行重命名:git clone url name(项目名)

  2、git pull origin master(dev...)合并别人推送的分支

  3、rebase可以帮助将提交的记录整理成一条直线(可以选择不进行这一步)

  4、创建自己的开发的分支,并切换到自己的开发分支进行开发

  5、将需要和别人协作开发的内容推送至公开分支:git push origin serverfix

    协作者:git fetch origin

      抓取远程跟踪分支,本地是不会有这个分支的,可以当成是一个指针

      git merge origin /serverfix  合并内容到自己的分支

      git checkout -b serverfix origin/serverfix  创建并切换到serverfix,起点从origin/serverfix

  6、跟踪分支:

    git checkout --track origin/serverfix  跟踪该分支,git pull自动识别这个分支进行合并

    重命名本地分支:git checkout -b sf origin/serverfix

  7、git fetch 从服务器拉取本地没有的数据

  8、删除远程分支:git push origin --delete serverfix

  9、远程仓库托管网站:GitHub、码云、gitlab

2、git常见命令

  1、git init -- 初始化

  2、git add  -- 从工作区添加到版本库中

  3、git commit -m "" -- 从暂存区添加到分支

  4、git status -- 查看状态

  5、git log -- 查看版本库的日志

  6、git reflog -- 查看所有日志

  7、git reset -head -- 版本号切换

  8、git stash -- 保存

  9、git stash -- 将第一个记录从某一个地方重新拿到工作区(可能户产生冲突)

    git stash list -- 查看某个地方存储的所有记录

    git stash clear -- 清空某个地方

    git stash pop -- 将第一个记录从某个地方重新拿回到工作区(可能会产生冲突)

    git stash apply -- 编号,将指定编号记录从某个地方拿回到工作区(可能会产生冲突)

    git stash drop -- 编号,删除指定编号记录

  10、git branch dev -- 创建分支

  11、git branch -d dev -- 删除分支

  12、git checkout dev -- 切换分支

  13、git merge dev -- 合并分支

  14、git branch -- 查看所有的分支

  15、git clone https:xx  -- 从某个地方克隆内容

  16、git add origin https:xx -- 起个别名

  17、git push origin dev -- 添加到dev分支中

  18、git pull origin master -- 从主分支中拉取代码

  19、git fetch origin master -- 从仓库区获取内容

  20、git merge origin/master -- 和网上下的master分支进行合并

ps:在new一个新的仓库的时候,默认的分支是master分支

  开发的分支:dev

  做代码:review

  程序员自己的分支:自己定义

    1、每个员工创建自己的分支

    2、将自己的代码提交到自己的分支

    3、由组长或者老大来做代码的review -- 代码提交到review分支

    4、在提交到dev分支

    5、最后在合并到master分支上

3、stach的作用以及相关的命令

  git stash -- 将当前工作区所有修改过的内容保存到某个地方,当工作区还原到当前版本还未修改过的状态

  git stash list -- 查看某个地方存储的所有内容

  git stash clear -- 清空某个地方

  git stash pop -- 将第一个记录从某个地方重新拿到工作区(可能会产生冲突)

  git stash apply -- 编号,将指定编号记录从某个地方重新拿到工作区(可能会产生冲突)

  git stash pop -- 编号,删除指定编号的记录

4、merge和rebase的区别

  merge:

    会将不同的分支提交合并成一个新的节点,之前的提交分开显示,注重历史信息,可以看出每个分支信息,基于时间点,遇到冲突手动解决,然后再次进行提交。

  rebase:

    将两个分支的提交结果融合成线性, 不会产生新的节点,更注重的是开发的过程,遇到冲突手动解决,然后在继续操作。

5、如何基于git实现代码的review

  review:老板、小组长、领导

  review的内容:审查代码的规范

  流程:master

       dev

      个人分支

        review

    个人提交代码到review分支,审查完毕之后由领导合并到dev分支中

6、git如何实现v1.0 v2.0等的版本的管理

  git tag --> 查看标签

  git tag -l "v1.8" --> 查看1.8开头的所有的版本

  git tag -a v1.0 -m "one" --> 创建标签

  git show v1.0 --> 查看1.0的这个标签

  git tag v1.1-lw --> 轻量级的标签
  git push origin v1.5 --> 推送到远程中
  git push origin --tags --> 将所有标签推送到远程中
  git tag -d v1.2 --> 删除指定标签
  git push origin :refs/tags/v1.2 --> 删除远程仓库的标签
  ps: 用commit打好标签之后在提交到远程仓库中
 
 
7、什么是gitlab
  基于git的项目管理软件, 代码托管的私有仓库,自动进行代码备份,gitlab是公司自己搭建的项目代码托管平台
 
8、GitHub和gitlab的区别
  GitHub是一个面向开源及私有软件项目的托管平台(要是创建私有的话是需要付费的,最低的付费为每月7刀, 但是只支持5个私有项目)
  gitlab是公司自己搭建的项目托管平台,gitlab是可以部署到自己的服务器上的, 数据库等一切信息都掌握在自己手上,适合团队内部协作开发(你总不可能把团队内部的代码结晶总放在别人的服务器上吧, 简单来说GitHub可以看作是个人版的GitHub)
 
 
9、如何为GitHub上

Pull Request的过程、基于git做的协同开发、git常见的一些命令、git实现代码的review、git实现版本的管理、gitlab、GitHub上为开源项目贡献代码的更多相关文章

  1. 在github上参与开源项目贡献代码

    1 登录github, 点击自己感兴趣的repository的fork按钮,这样自己的github主页会有一个拷贝. 2 在自己本地修改同时保持和原来的repository同步: git remote ...

  2. GitHub上fork一个项目贡献代码以及同步原作者的修改【转】

    如何贡献自己的力量 首先你总得有自己的github帐号吧,注册一个,非常简单,只需用户名,邮箱,密码,邮箱只是用来找回密码的,不做验证.因此注册后立即能用!比如我现在新注册一个叫JsLouvre的示范 ...

  3. GitHub Android 最火开源项目Top20 GitHub 上的开源项目不胜枚举,越来越多的开源项目正在迁移到GitHub平台上。基于不要重复造轮子的原则,了解当下比较流行的Android与iOS开源项目很是必要。利用这些项目,有时能够让你达到事半功倍的效果。

    1. ActionBarSherlock(推荐) ActionBarSherlock应该算得上是GitHub上最火的Android开源项目了,它是一个独立的库,通过一个API和主题,开发者就可以很方便 ...

  4. Git命令之从GitHub上下载开源项目

    1,先在本地创建一个目录,作为本地仓库,如: 2,使用Git init 初始化仓库,git初始化完成后,会生成一个隐藏的git文件如: 3,clone Git项目,如: 4,这个项目就是合Github ...

  5. 花20分钟写的-大白话讲解如何给github上项目贡献代码

    原文地址:http://site.douban.com/196781/widget/notes/12161495/note/269163206/ 本文献给对git很迷茫的新手,注意是新手,但至少会点基 ...

  6. (转)大白话讲解如何给github上项目贡献代码

    转自:https://site.douban.com/196781/widget/notes/12161495/note/269163206/ 2013-03-30 22:53:55   本文献给对g ...

  7. 大白话讲解如何给github上项目贡献代码

    本文献给对git很迷茫的新手,注意是新手,但至少会点基本操作,有点基本概念的新手,我不会从怎么用github和git是什么开始讲的.如果作为新手你看书又看不进去,原理又太复杂,又没有直接了当告诉我们怎 ...

  8. Git安装配置和提交本地代码至Github,修改GitHub上显示的项目语言

    1. 下载安装git Windows版Git下载地址: https://gitforwindows.org/ 安装没有特别要求可以一路Next即可,安装完成后可以看到: 2. 创建本地代码仓库 打开G ...

  9. github上fork原项目,如何将本地仓库代码更新到最新版本?

    场景: 在github上fork原项目,项目组成员发起pull request提交了代码,这时自己在本地仓库该如何更新到最新代码? 操作方法如下: 方法一.从github上进行操作然后更新 登录自己的 ...

随机推荐

  1. make: 警告:检测到时钟错误。您的创建可能是不完整的。

    我在make的时候也出现了同样的问题,不过不是什么大问题,这个不影响编译结果,但是强迫症还是希望能解决掉 分析原因可能是:服务器上的文件最后修改时间比当前时钟要晚 解决办法:用touch 命令把源程序 ...

  2. 路飞学城-Python爬虫集训-第二章

    本次爬虫集训的第二次作业是web微信. 先贴一下任务: 作业中使用到了Flask. Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模 ...

  3. 2018-8-10-WPF-鼠标移动到列表上-显示列表图标

    title author date CreateTime categories WPF 鼠标移动到列表上 显示列表图标 lindexi 2018-08-10 19:16:51 +0800 2018-2 ...

  4. vue 生产环境和测试环境的配置

    我们引用的是axios 给src目录增加 api 文件夹 里面写上index.js // 配置API接口地址 var root = process.env.API_ROOT // 引用axios va ...

  5. 【2019云栖大会】这一场,我们好好聊聊5G和边缘计算

    一年一度的科技盛会杭州云栖大会Apsara Conference就要来了9月25-27日数万名开发者将齐聚杭州云栖小镇共同探索人类科技演进的脉搏聚焦面向未来的创新.热点技术话题 5G和边缘计算是201 ...

  6. Kubernetes集群环境准备

    目录 二.准备工作 ​ 主机名 IP地址(NAT) 描述 linux-node1.example.com eth0:192.168.56.11 Kubernets Master节点/Etcd节点 li ...

  7. Python-购物车系统

    # coding=utf-8 import os, pickle class color: def echo_error(self, red): print(f"\033[31;1m {re ...

  8. c++继承知识点小结

    继承的概念 继承是c++中一个重要的概念.继承是指,我们可以使用一个类来定义另一个类,在创建这个类时,我们就不需要重新编写数据成员与成员函数,这可以大大方便我们编写代码和维护代码的效率. 当我们使用一 ...

  9. China Final J - Mr.Panda and TubeMaster

    和一般的管道不同 不能类似“无限之环”或者“弯弯国”的建图,因为这两个题都是某些位置必须有,或者必须没有 但是本题可以有的位置随意,不能限制某个位置要么流2,要么流0,(实际上可能流了1过去) 所以建 ...

  10. jeecms 前台拦截器的研究与改造

    jeecms 前台拦截器的研究与改造 2013年12月24日 15:23:35 xinfei0803 阅读数 3511   jeecms出发点是面向大众的,具有前台开发性,也就是说,即时是未登录(游客 ...