传输协议: 本地传输,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. SQLServer BCP 命令的使用

    现在有一个包含数据的文件,每个字段用“|”分隔,现在要把这些数据导入到数据库的表中. 数据文件如下: R001|20150710 可以使用如下命令: bcp testDB.dbo.testTable ...

  2. SQL-AdventureWorks样例数据库

    1. 下载样例数据库文件 输入网址:http://www.codeplex.com/ , 搜索:microsoft sql server product samples 下载对应数据库的Adventu ...

  3. Python 文件读和写

  4. Codeforces Round #249 (Div. 2) D. Special Grid 枚举

    题目链接: http://codeforces.com/contest/435/problem/D D. Special Grid time limit per test:4 secondsmemor ...

  5. hdu 2255 奔小康赚大钱 最大权匹配KM

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2255 传说在遥远的地方有一个非常富裕的村落,有一天,村长决定进行制度改革:重新分配房子.这可是一件大事 ...

  6. 操作集合的工具类Collections

    1       操作集合的工具类Collections Java提供了一个操作Set.List和Map等集合的工具类:Collections,该工具类里提供了大量方法对集合元素进行排序.查询和修改等操 ...

  7. vml 在IE8 不显示的问题, Group不能用等问题.

    IE8 不显示的问题: <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> ...

  8. Linux下ettercap的安装,make安装软件步骤

    第一步:下载ettercap的压缩包 用tar 解压压缩包,-z 用gzip的方式解压 -x 解打包/解压缩 -f 指定包  -v显示进度 ls 可以查看解压后出现一个新目录 ettercap-0.8 ...

  9. BZOJ1821: [JSOI2010]Group 部落划分

    这题乍看很吓人,其实就是一个贪心. 每次取最近的两个点所在的块合并,直到只剩下k块,输出答案. /*************************************************** ...

  10. HDU 2669 Romantic(扩展欧几里德, 数学题)

    题目 //第一眼看题目觉得好熟悉,但是还是没想起来//洪湖来写不出来去看了解题报告,发现是裸的 扩展欧几里得 - - /* //扩展欧几里得算法(求 ax+by=gcd )//返回d=gcd(a,b) ...