windows 本地搭建git仓库_搭建Git服务器
在远程仓库一节中,我们讲了远程仓库实际上和本地仓库没啥不同,纯粹为了7x24小时开机并交换大家的修改。
GitHub就是一个免费托管开源代码的远程仓库。但是对于某些视源代码如生命的商业公司来说,既不想公开源代码,又舍不得给GitHub交保护费,那就只能自己搭建一台Git服务器作为私有仓库使用。
搭建Git服务器需要准备一台运行Linux的机器,强烈推荐用Ubuntu或Debian,这样,通过几条简单的apt命令就可以完成安装。
假设你已经有sudo权限的用户账号,下面,正式开始安装。
第一步,安装git:
$ sudo apt-get install git
第二步,创建一个git用户,用来运行git服务:
$ sudo adduser git
第三步,创建证书登录:
收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
第四步,初始化Git仓库:
先选定一个目录作为Git仓库,假定是/srv/sample.git,在/srv目录下输入命令:
$ sudo git init --bare sample.git
Git就会创建一个裸仓库,裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git结尾。然后,把owner改为git:
$ sudo chown -R git:git sample.git
第五步,禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
第六步,克隆远程仓库:
现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
$ git clone git@server:/srv/sample.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
剩下的推送就简单了。
管理公钥
如果团队很小,把每个人的公钥收集起来放到服务器的/home/git/.ssh/authorized_keys文件里就是可行的。如果团队有几百号人,就没法这么玩了,这时,可以用Gitosis来管理公钥。
这里我们不介绍怎么玩Gitosis了,几百号人的团队基本都在500强了,相信找个高水平的Linux管理员问题不大。
管理权限
有很多不但视源代码如生命,而且视员工为窃贼的公司,会在版本控制系统里设置一套完善的权限控制,每个人是否有读写权限会精确到每个分支甚至每个目录下。因为Git是为Linux源代码托管而开发的,所以Git也继承了开源社区的精神,不支持权限控制。不过,因为Git支持钩子(hook),所以,可以在服务器端编写一系列脚本来控制提交等操作,达到权限控制的目的。Gitolite就是这个工具。
这里我们也不介绍Gitolite了,不要把有限的生命浪费到权限斗争中。
小结
搭建Git服务器非常简单,通常10分钟即可完成;
要方便管理公钥,用Gitosis;
要像SVN那样变态地控制权限,用Gitolite。
windows 本地搭建git仓库_搭建Git服务器相关推荐
- 自己本地搭建svn仓库_搭建svn仓库
预期目的: 1.仓库放在 /var/svn/ 目录下,并且仓库名为 project 2.创建用户组lsgogroup,该组下添加两个成员lsgoweb1.lsgoweb2,密码直接用用户名,两用户可以 ...
- Git使用(Git安装、建立Git仓库、克隆Git仓库、提交代码至Git仓库)
目录 1 Git安装 2 建立Git仓库 3 克隆Git仓库 3.1 新建Spring Boot项目 3.2 克隆Git仓库 4 提交代码至Git仓库 4.1 Pull 4.2 Commit 4. ...
- 搭建自己的git仓库之简单搭建本地git仓库和远程git仓库~
一.安裝git 1.在https://git-scm.com/downloads下载安装git: 2.安装成功后在开始菜单中或任意一个文件夹中点击鼠标右键打开git bash: 3.在命令行輸入: ...
- 自己本地搭建svn仓库_「PHP编程」如何制作自己的Composer包?
PHP开发免不了要使用Composer,使用Composer有着明显的好处.一是可以很好的解决第三方包的相互依赖,二是可以方便进行代码的重用. 那如何制作自己的Composer包呢? 制作Compos ...
- 将在本地创建的Git仓库push到Git@OSC
为什么80%的码农都做不了架构师?>>> 本人小白一个,最近刚接触Git,发现挺好用的,而且OSC还提供了免费的托管仓库,打算把自己电脑上的代码和在公司无聊时写的代码给同步到O ...
- python私有仓库_创建git私有仓库
以ubuntu服务器为例,如果要创建小范围的私有git服务器,是非常简单的,只需要如下几个简单步骤: Step 1: 安装git 直接通过sudo apt-get install git即可完成. S ...
- git文件共享_与Git共享文件
git文件共享 Git是那些设法将大量现代计算封装到一个程序中的罕见应用程序之一,最终成为许多其他应用程序的计算引擎. 尽管它最着名的是跟踪软件开发中的源代码更改,但它还有许多其他用途,可以使您的生活 ...
- 中文提交到git乱码_解决git 提交后中文字符会乱码的问题
解决git 提交后中文字符会乱码的问题 最近发生那了一件怪事,当然菜鸡经常碰见怪事 本来一个.properties文件在idea里面commit的时候看了一下diff,没发现异常,但是提交到gitla ...
- git服务器查看用户信息,git 查看当前git用户_新Git用户使用方法
git 查看当前git用户 This post is a tutorial for new users to set up git and clone and use the first reposi ...
最新文章
- python redis 消息队列_python中利用redis构建任务队列(queue)
- socket.io的 Python客户端中文encode问题
- source insight快捷键及使用技巧
- 会计记忆总结之二:会计要素和会计科目
- [WP7开发入门]在Windows 2003,XP上安装Windows Phone 7开发工具
- Mac下安装和使用GunPG(GPG)
- qt c++ 图片预览_这是Google Pixel 4上的新动态壁纸的预览
- 【渝粤题库】陕西师范大学202011 微观经济学 作业 (专升本、高起本)
- Python os.chdir() 方法
- 全奖博士招生,美国中佛罗里达大学计算机视觉研究中心
- 【小安翻唱】檄!帝国华撃団
- gulp工具rename
- hmcl启动器java下载_HMCL启动器
- springboot实现图片验证码登录
- HDU 6080 度度熊保护村庄 (叉积判断点线关系+图论)
- UG NX 10 重新附着草图
- 计算机专业选择福大还是南邮,48所院校考研历年报录比汇总,21考研可参考!...
- java 调用飞信发短信(转)
- linux shell 关机,linux shell关机命令详解
- Settings provider system和global表格数据访问
热门文章
- 如何使用dbx分析core文件_[转]使用DBX分析AIX 下的 CoreDump
- 共享打印机出现0x00000569代码解决方案(亲测有效)
- Android对渐变颜色的处理
- Web操作系统漏洞发现——工具使用总结
- 学生信息管理系统:实现对学生信息增删改查操作
- 微软打击盗版,我们坚决支持
- Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择
- esp32录音功能开发_自制基于ESP32的音频播放器
- C++代码规范 学习笔记
- cmake是什么,为什么现在都用cmake,cmake编译原理和跨平台示例