笔记一、Git服务器【转】

时间:2022-08-27 19:55:33
传输协议: 本地传输,SSH协议,Git协议,HTTP协议
 
git clone /home/git/project.git                      // 本地clone
git clone ssh://user@server:/home/git/project.git     // 使用SSH协议clone, 可读写
git clone user@server:/home/git/project.git           // 默认使用SSH协议clone, 可读写
git clone http://example.com/git/project.git         // 使用HTTP协议clone, 只读
 
git clone --bare /home/myproject myproject.git       // clone为纯仓库
 
 
帐号管理方法
(ssh密钥方式有待研究, 群组方式可以)
 
最常用的帐号管理方法为: 
   在主机上建立一个 git账户,
   让每个需要写权限的人发送一个SSH公钥,然后将其加入git账户的 ~/.ssh/authorized_keys文件
 
1、服务器创建git用户
$ sudo adduser git
$ su git
$ cd
$ mkdir .ssh
 
2、开发者生成SSH公钥
$ su cxt
$ cd
$ mkdir .ssh
$ cd ssh
$ ssh-keygen    // 创建公钥私钥 id_rsa, id_rsa.pub
 
3、导入公钥到git用户的ssh目录下
$ su git
$ cd
$ cat /home/cxt/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
 
4、参考服务器搭建方式
 
5、git用户登录的防范措施
$ sudo vim /etc/passwd
$ git:x:1000:1000::/home/git:/bin/bash  改为
$ git:x:1000:1000::/home/git:user/bin/git-shell   // git用户只能用SSH连接来推送和获取git仓库, git用户不能使用主机shell了
 
$ su git
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
 
$ ssh git@192.168.3.254     // 只能通过ssh访问git用户
 
 
6. 群组管理
   git用户所属群一般为git
$ grep 'git' /etc/group /etc/gshadow
/etc/group:git:x:1003:
/etc/gshadow:git:!::
 
将cxt用户加入git群组
$ gpasswd -a cxt git
 
更改/home/git下xxx.git目录群组权限
$ sudo chmod g+w -R /home/git/xxx.git
 
屏蔽/home/git/.ssh目录权限
$ sudo chmod 700 -R /home/git/.ssh     // 所有人都不能看到公钥
 
 
服务器搭建方式:
 
git init --bare     // 服务器
 
# 在John电脑上
$ cd myproject
$ git init
$ git add .
$ git commit -m "initial commit"
$ git remote add origin user@server:/home/git/project.git    // 远程分支第一个版本
$ git push origin master
 
# 在Josie电脑上
$ git clone user@server:/home/git/project.git
$ vim README
$ git commit -am "fix for the README file"          // 其他人clone与推送
$ git push origin master
 
 
客户端提交常见错误:
 
1. remote: error: insufficient permission for adding an object to repository database ./objects
  服务端没有可写目录的权限
  sudo chmod -R g+w xxx.git/.objects
 
2. $ ssh git@192.168.3.254
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.3.254 closed.
 
原因:
    按照提示,在git用户的主目录下面需要存在git-shell-commands目录

笔记一、Git服务器【转】的更多相关文章

  1. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  2. CentOS7 编译安装 Git 服务器 Centos 7.0 + Git 2.2.0 + gitosis (实测 笔记)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 服务器IP:192.168.1.31 域 ...

  3. 使用自建Git服务器管理私有项目 Centos 7.3 + Git 2.11.0 + gitosis (实测 笔记)

    环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7-x86_64-Minimal-1611.iso GIT服务器IP:192.168.1 ...

  4. Git服务器搭建笔记

    前言:最近公司要使用git服务器对Android4.4的源码进行版本控制,所以花了些时间在Ubuntu14.04上搭建了git服务器,正好前段时间也学习了下git的使用哈哈 ------------- ...

  5. 运维笔记--线上服务器git环境配置

    场景描述: 我们采用git去管理代码分支,本地开发环境,线上服务器多数情况下也会使用git去管理程序代码,那么新的一台服务器,如果指定了目标路径作为代码存放路径,该如何配置git环境, 以达到跟远程服 ...

  6. [开发笔记usbTOcan]用树莓派搭建私有Git服务器

    0 | 思路 在开始编程前,先创建一个版本管理库,以前一直用SVN,但目前用Git的还是比较,正好利用这个机会学习GIt. 想过使用Github提供的免费服务器,但项目目前还没有做开源的准备,于是就有 ...

  7. Windows下配置Git服务器和客户端 超全

    为了配合Redmine使用,特地用Git来做版本控制. Git Candy© 是一个基于ASP.NET MVC的Git分布式版本控制平台,Git Candy的目标是轻松干掉Bonobo,逐渐追赶Git ...

  8. Git 笔记三 Git的初步使用

    Git 笔记三 Git的初步使用 在上一篇中,学习了如何配置Git环境,这一篇,开始学习Git的初步使用.Git的初步使用还是很简单的.总体上知道git init, git clone, git ad ...

  9. git服务器的建立——Git折腾小记

    转自:http://blog.csdn.net/xsl1990/article/details/25486211 如果你能看到一些sshd相关的进程信息,则说明你已经有这个服务了,否则(或者你想更新的 ...

  10. 架设Git服务器

    架设Git服务器项目 Git Candy:http://github.com/Aimeast/GitCandy/ AE大神的作品, Git Candy© 是一个基于ASP.NET MVC的Git分布式 ...

随机推荐

  1. python_九九乘法表

    # 九九乘法表 print(" 九九乘法表") for table_x in range(1,10): for table_y in range(1,table_x +1): pr ...

  2. Codeforce Round #222 Div2

    这场断网,本来有个别人的比较卡的无线 但后面睡着了- -! C:额,逆向想下! B:... A:...

  3. 二模 (4) day1

    第一题: 题目描述: 有一个无穷序列如下:110100100010000100000…请你找出这个无穷序列中指定位置上的数字 解题过程: 1.考虑到1的数目比0少的多,就从1的位置的规律开始分析.前几 ...

  4. HTML5小游戏源码收藏

    html5魅族创意的贪食蛇游戏源码下载 html5网页版打砖块小游戏源码下载 html5 3D立体魔方小游戏源码下载 html5网页版飞机躲避游戏源码下载 html5三国人物连连看游戏源码下载 js ...

  5. win10中的vmware桥接模式异常,不能设置同网段ip

    今天发现centOS的桥接模式不正常了,配置 dhclient居然不成功,没有同个网段的ip,于是各种找原因. 突然灵光一现,前几天更新了win10,会不会神马驱动或者服务没安装? 找了一圈,我勒个去 ...

  6. VS2017动态链接库(.dll)的生成与使用

    转 https://blog.csdn.net/m0_37170593/article/details/76445972 这里以VS2017为例子,讲解一下动态链接库(.dll)的生成与使用. 一.动 ...

  7. Postman模拟Request Payload发送请求

    Postman模拟Request Payload发送请求,如下图所示:

  8. 理解指令的restrict属性(转)

    restrcit属性说明 restrict: EACM中的任意一个之母.它是用来限制指令的声明格式的. E - 元素名称:<my-directive></my-directive&g ...

  9. 《Mysql技术内幕,Innodb存储引擎》——事物

    事物 事物中的操作要么都成功要么都不做,这是事物的目的,也是事物模型与文件系统的重要特征之一. 扁平事物(Flat Transactions) 所有操作都处于同一层次,要么都做要么都执行要么都回滚,无 ...

  10. unity里面查找所有物体

    测试的时候发现一个很诡异的bug,在prefab里面的物体的属性居然不断的在变化,最后一步步调试才发现,区别是查找物体的api,特此记录下 两种api Canvas[] canvasArray = ( ...