使用Github开发 | 青训营笔记

100 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 3 天

在抖声项目开发过程中学习了多人github项目管理方法,记录总结如下:

Git介绍

版本控制

将选定的文件回溯到之前的状态,将项目退回到之前的时间点,所以可基于此修改迭代新版本。版本控制有本地版本控制系统RCS,集中化版本控制CVCS,通过客户端连接服务器来实现,分布式版本控制DVCS,可通过镜像复制解决单点故障。

Git概念

Git是分布式版本控制系统设计起源于Linux内核开发过程。设计简单,对非线性开发模式有强力支持,完全分布式,有能力高效管理超大规模项目。

Git使用特性

  • 直接记录快照,将数据看做小型文件系统的一系列快照,在git中,每当你提交更新或者保存项目状态的时候,就创建文件快照并保存快照索引。所以更类似一个小型文件管理系统
  • 几乎所有操作都是在本地副本上执行,直到网络连接再上传。
  • Git基于SHA-1散列,根据全部数据计算校验和,避免传输时出现损坏,哈希值还能用来做索引。
  • Git一般只添加不删除,防止执行不可恢复的操作。

Git工作原理

Git下文件有三种状态,已提交,已修改,和已暂存。

  • 已提交表示已安全保存在本地数据库

  • 已修改表示修改了文件但没有保存到数据库

  • 已暂存表示标记了已修改文件的当前版本,下次提交会保存。

对应git项目有工作区,暂存区和git仓库目录三个文件,

  • 工作区是某个版本对应快照文件,从git仓库提取的

  • 暂存区保存了下次提交的文件列表信息,存在git仓库目录里,是索引文件

  • Git仓库目录保存项目的原数据和对象数据库。

Git基本工作流程是,在工作区修改文件,得到已修改状态的文件,将更改暂存到暂存区得到已暂存状态的文件,提交更新就是将暂存区文件快照永久存到git仓库目录中,得到已提交状态的文件。

Git安装配置

windows下从 git-scm.com/download/wi… 安装,就初次运行git前的系统配置,首先,针对不同对象,Git的配置语句区别如下:

git config --system : 对系统每个用户和仓库的通用配置
git cofig --global:针对当前用户的所有仓库生效
git config --local(或默认):进入某个仓库,仅针对当前仓库生效

git config <key> 检查key对应配置

用户信息配置:

git config --global usr.name ""
git config --global usr.email 

查询帮助手册:

git help <verb> 

多人协作开发

目前我了解的开发方式分为两种:

  1. 基于Collaborator设置的协同开发:邀请者和被邀请着有几乎相同的权限,使用同一个repository,被邀请者push请求一定会接受。
  2. 基于fork同步的协同开发:双方使用的是不同的repository,而且非创建者的push请求不一定被接受。

关于方案二,开发的步骤如下:

在github上fork指定项目,可以将repository复制到自己账户,然后在本地文件夹通过git bash执行如下指令:

git clone git@github.com:usr/pro.git---克隆仓库到本地,默认克隆master分支
cd  pro--进入仓库所在文件夹
git checkout -b version1 master--基于master分支新建本地branch,并切换
git add .
git commit -m "fix XXXXX"--修改项目文件并对本地文件提交
$ git remote add upstream git@github.com:usr/pro.git
$ git fetch upstream ---同步到上游仓库
$ git push -f origin version1:version1--推送新分支到自己的远程仓库

在自己仓库提pull request到上游仓库,然后等待原使用者merge或进行进一步修改等。