windows server 2012 standard 搭建 git 服务 探索

服务器系统介绍

windows server 2012 standard

搭建项目托管平台

在搭建项目托管平台之前我们应该先搞明白版本控制这个概念。

版本控制

什么是 版本控制?

来源 百度百科
版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一。
版本控制包括:检入检出控制、分支和合并、历史记录。

来源 TOWER
你可以把一个版本控制系统(缩写VCS)理解为一个“数据库”,在需要的时候,它可以帮你完整地保存一个项目的快照。当你需要查看一个之前的快照(称为“版本” )时,版本控制系统可以显示出当前版本与上一个版本之间的所有替换的细节。

来源 git
版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。

为什么用 版本控制?

1、备份用
2、协调开发用

版本控制的变革

来源 git
本地版本控制系统
本地版本控制系统
缺点:
1、中央服务器故障,将无法提交更新,无法协同工作。如果中心数据库所在的磁盘发生损坏,又恰当无备份,,毫无疑问将丢失所有数据
包括项目的整个变更历史。
2、多人协作繁琐。

集中化的版本控制系统
集中化的版本控制系统
缺点:中央服务器故障,将无法提交更新,无法协同工作。如果中心数据库所在的磁盘发生损坏,又恰当无备份,,毫无疑问将丢失所有数据
包括项目的整个变更历史。
记住这个概念下面会有涉及到。

分布式版本控制系统
分布式版本控制系统
解决了本地版本控制系统 集中化的版本控制系统 的缺点。
解决方式:客户端并不只提取最新版本的文件快照, 而是把代码仓库完整地镜像下来,包括完整的历史记录。
记住这个概念下面会有涉及到。

简单的来说版本控制系统会记录所有对项目文件的更改。

版本控制工具

现在主流版本控制工具是 Git 和 SVN。
咱们上面提到两个概念分别是 集中化的版本控制系统 和 分布式版本控制系统。

SVN 属于 集中化的版本控制系统。
Git 属于 分布式版本控制系统。

SVN VS Git

SVN 简介

来源SVN
Apache® Subversion®
“Enterprise-class centralized version control for the masses”

google 翻译
Apache Subversion
面向群众的企业级集中版本控制

提取关键字:企业级、集中、版本控制。
SVN 是一款集中式版本控制系统。
特点:可靠性高、模型和用法的简单性、覆盖面广(支持从个人到大型企业运营的各种用户和项目需求的能力)。

SVN 的一些概念

  • repository(源代码库)
  • Checkout(提取)
  • Commit(提交)
  • Update (更新)

SVN 的主要功能

  • 1、目录版本控制
  • 2、真实的版本历史
  • 3、自动提交
  • 4、纳入版本控管的元数据
  • 5、选择不同的网络层
  • 6、一致的数据处理方式
  • 7、有效的分支(branch)与标签(tag)
  • 8、Hackability

SVN 生命周期

1、创建版本库
2、检出
3、更新
4、执行变更
5、复查变化
6、修复错误
7、解决冲突
8、提交更改

SVN 客户端工具

TortoiseSVN 官网上下载 TortoiseSVN,TortoiseSVN有对应的语言包。
菜鸟教程TortoiseSVN 使用教程

1、新建一个工作目录例如 runoob01,用于存储工作档案

新建工作目录

2、将工作档案更新到本地

SVN checkout
检出至目录
检出至目录
检出至目录
检出至目录

3、新增档案及目录到 Repository 中

新增文件
加入文件
加入文件
加入文件
加入文件
添加到Repository

Git 简介

来源 Git
Git 是一个免费的开源分布式版本控制系统,旨在快速高效地处理从小型到大型项目的所有内容。
Git 易于学习, 占地面积小,具有闪电般的快速性能。它具有Subversion,CVS,Perforce和ClearCase之类的SCM工具,具有廉价的本地分
支,方便的暂存区域和 多个工作流等功能。

Git SVN 能做的 Git 基本都能实现。

Git 的一些概念

本来要搭建 SVN 我提议搭建 GitLab ,我但是我也没有搭建过 GitLab,服务器系统是 windows server,我查了查资料,得到结果是 如果要在 windows server 上搭建 GitLab 就要装 虚拟机 然后装 Ubuntu 之类的 操作系统然后再装 GitLab 那可是真………… ,gitlab官网也没有资料。

查找资料的过程中我发现 GitLab Runner 可以安装在 windows 上,查了下资料大致意思是 GitLab Runner 是将代码发送到 GitLab 上的服务。??…………

GitLab Runner 官方解释
GitLab Runner是一个开源项目,用于运行您的作业并将结果发送回GitLab。它与GitLab CI / CD结合使用,GitLab CI / CD是GitLab随附的用于协调作业的开源持续集成服务。

查找资料的过程中 我发现了 Gitblit 而且相关的搭建文章有很多,我开始了新的尝试。

Git 与 SVN 区别

1、Git 是分布式的,SVN 不是:这是 Git 和其它非分布式的版本控制系统,例如 SVN,CVS 等,最核心的区别。
2、Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
3、Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。
4、Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。
5、Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

托管平台

  • GitHub
  • GitLab
  • Bitbucket
  • 码云
  • coding

相关资料
版本控制
版本控制
版本控制
程序员编程开发网站,为什么要有版本控制工具这种东西?
Apache® Subversion®
菜鸟教程 SVN
TortoiseSVN
Git
Git工作流程
Git教程
菜鸟教程 Git
Git、Github、Gitlab的区别
Git、GitHub、GitLab三者之间的联系以及区别
gitLab的使用 和 git 、 github、gitlab的区别
Git、GitHub和GitLab的区别
Git与GitHub,Gitlab的区别
如何在你自己的服务器搭建类似github的服务,git部署站点
Git:本地部署代码到服务器(GitHub服务器 或 局域网搭建的git服务器)
如何搭建一个GitHub在自己的服务器上?
Svn与Git的区别,为什么使用git?
SVN与Git比较
版本管理工具介绍——SVN篇
SVN常见问题
版本控制工具 - git和svn
SVN与Git比较的优缺点差异
对比Git 与 SVN,这篇讲的很易懂
你还在用svn?git你无法拒绝的版本管理工具
Bonobo Git Server官网
Bonobo Git Server安装
Bonobo Git Server 先决条件
windows系统部署Bonobo.git服务器
在Windows上搭建Git Server
5分钟搞定 Git 服务端 安装 windows 2003 gitblit
gitblit搭建git服务器
Windows平台下Git服务器搭建
Windows平台下Git(gitblit)服务器搭建
怎么看电脑是否支持使用Hyper-V虚拟机
gitlab
gitblit
搭建gitlab仓库
在Windows上安装GitLab Runner
GitLab Runner
Gitblit GO安装和设置
windows下使用docker搭建gitlab的报错处理
使用docker-compose安装GitLab
安装Docker Compose
安装Docker引擎
服务器上的Git(Windows Server 2012)
Windows下使用docker部署gitlab CI服务
在Windows Server 2012上安装IIS 8
Internet信息服务(IIS)管理器在哪里打开
windows Server2012 IIS8.0配置安装完整教程
在Windows下搭建Gitlab服务器
windows server 2012 r2 安装docker

篇幅过长,回头填坑。
You need to set client_id and slot_id to show this AD unit. Please set it in _config.yml.