前言:

  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. Angular CLI ng常用指令整理

    一.组件创建 ng generate component heroes 二.运行项目 ng serve --open //--open 立即打开 三.创建指令 ng g directive my-ne ...

  2. python网络框架Twisted

    什么是Twisted Twisted是一个用python语言写的事件驱动网络框架,它支持很多种协议,包括UDP,TCP,TLS和其他应用层协议,比如HTTP,SMTP,NNTM,IRC,XMPP/Ja ...

  3. Attribute类的使用

    为每个变量设置设置属性 "Description" public class PatternOption { /// <summary> /// 方向图步长 /// & ...

  4. 基于vue-cli的vs code设置

    vue-cli自带eslin校验,vs code采用下可以设置在保存文件时会自动纠正格式 { // vscode默认启用了根据文件类型自动设置tabsize的选项 "editor.detec ...

  5. python多线程建立代理ip池

    之前有写过用单线程建立代理ip池,但是大家很快就会发现,用单线程来一个个测试代理ip实在是太慢了,跑一次要很久才能结束,完全无法忍受.所以这篇文章就是换用多线程来建立ip池,会比用单线程快很多.之所以 ...

  6. python jieba模块详解

    借鉴于 [jieba 模块文档] 用于自己学习和记录! jieba 模块是一个用于中文分词的模块 此模块支持三种分词模式 精确模式(试图将句子最精确的切开,适合文本分析) 全模式(把句子在所有可以成词 ...

  7. CodeChef:Chef and Problems(分块)

    CodeChef:Chef and Problems 题目大意 有一个长度为n的序列$a_1,a_2,……,a_n$,每次给出一个区间[l,r],求在区间内两个相等的数的最远距离($max(j-i,满 ...

  8. [转]Windows钩子

    Windows钩子 Windows应用程序的运行模式是基于消息驱动的,任何线程只要注册了窗口类就会有一个消息队列来接收用户的输入消息和系统消息.为了取得特定线程接收或发送的消息,就要 Windows提 ...

  9. Ceisum官方教程1 -- 开始

    原文地址:https://cesium.com/docs/tutorials/getting-started/ 学会使用全球地形.影像.3d tile(模型切片).地理编码创建一个Cesium程序. ...

  10. Maven实战01_Maven简介

    1:何为Maven Maven:中文翻译为"知识的积累",也可翻译为"专家"或"内行". 谈到Maven,就不得不提"构建(bui ...