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

前言:

  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上🐂🍺的开源项目贡献代码
  1、fork需要协作的项目
  2、克隆/关联fork的项目到本地
  3、新建分支并建出新分支
  4、在新分支上完成代码的开发
  5、开发完成后将你的代码合并到master分支上
  6、添加原作者的仓库地址作为一个新的仓库地址
  7、合并原作者的master分支到你自己的master分支,用于和作者仓库代码同步
  8、push你的本地仓库到GitHub上
  9、在GitHub上提交pull request
  10、等待管理员来进行对这次提交进行处理
 
 
10、git中.gitignore文件的作用
  一般来收每个Git项目都需要一个.gitignore文件, 这个文件的作用就是告诉git哪些文件不需要添加到版本管理中,实际的项目中,很多项目是不需要版本管理的,比如python 的.pyc文件和一些包含密码的配置文件等等。
  
  

 

 

posted @ 2019-09-03 18:24  tulintao  阅读(678)  评论(0编辑  收藏  举报