Chinaunix首页 | 论坛 | 博客
  • 博客访问: 672800
  • 博文数量: 220
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1961
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-04 21:54
文章分类

全部博文(220)

文章存档

2018年(1)

2015年(140)

2014年(79)

我的朋友

分类: 系统运维

2015-04-02 14:06:52

参考文档:

http://blog.chinaunix.net/uid-27105712-id-4511124.html




git server 安装配置

1、切换到root用户

stevenrao@server:~$  su - root 

2、创建git组

root@server:~$  groupadd git
root@server:~$  groupadd user 

3、添加git账户

root@server:~$ useradd git -g git -m -s /bin/bash
root@server:~$ usermod -G git,user git #把git同时加入git组和user组 
root@server:~$ passwd git #设置密码 

4、添加到sudoers用户中去,尽量不要用root操作

root@server:~$ vim /etc/sudoers #加上下面一句 git ALL=(ALL:ALL) ALL 
root@server:~$ su - git #切换到git用户下工作 

5、安装3个软件包

git@server:~$ sudo apt-get install git git-core ssh 

6、建立一个空白仓库

git@server:~$ mkdir project.git
git@server:~$ cd project.git
git@server:~/project.git$ git --bare 
上面的好像错了的:
应该这样干的:[git@Mini ~]$ sudo git init --bare project.git
init Initialized empty Git repository in /home/git/project.git/ 

7、再添加几个账户, 本样例账户为stevenrao

git@server:~/project.git$ cd ~
git@server:~$ sudo useradd stevenrao -g user -m -s /bin/bash
git@server:~$ sudo usermod -G git,user stevenrao #把stevenrao同时加入git组和user组 
git@server:~$ sudo passwd stevenrao #设置密码 

8、配置stevenrao用户秘钥(秘钥生成参考后面git client 配置中的2,3步骤)

创建证书登录:

收集所有需要登录的用户的公钥,就是他们自己的id_rsa.pub文件,把所有公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。


git@server:~$  mkdir /home/git/.ssh
git@server:~$ vim /home/git/.ssh/authorized_keys
sh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp1s5dDRyMeY7q6mRlQz5DbfKC/Ebtl5/gdanOaASjnNtJPULuTyVIj3UmYzZFVaVO+3yC31+cQTGWp2bXzKEuXqIUxhygvOCr+vwfRK8FrpXOLLF5WWQYd6UgpV6/6mgRPuVVDa39zqGwKEVBgoIpiVYRBSIywbO0Qf9SGQV4CevEny8aGTZCE/UHq19ec5w9jrsvij5zt xyFlvfjIaDOb8F/b3IqZ1v5PB5UHiJaZqE0xjxFiA6wtlprkrNOQKyBI44MCjw8P964+ED+w2I4n8TisCyok5FGBn66HzdBV59166NZfP+4CFScO8hDXpUnWPvpgjhtWUQeYCMLUp5eQ== stevenrao@ubuntu 

9、配置git config

git@server:~/project.git$ vim /home/git/project.git/config 
[core]
        repositoryformatversion = 0 filemode = true bare = true (添加下面两行)
[receive]
        denyCurrentBranch = ignore 

10、重启ssh服务

git@server:~$  /etc/init.d/ssh restart 

git client 配置 (在另一台电脑上)

1、安装3个软件包

root@client:~$ sudo apt-get install git git-core ssh 

1、添加用户

root@client:~$  useradd stevenrao -g user -m -s /bin/bash
root@client:~$  passwd stevenrao #设置密码 
root@client:~$  su -u stevenrao #切换当前用户 

2、添加git秘钥

stevenrao@client:~$ ssh-keygen -t rsa 
Generating public/private rsa key pair. Enter file in which to save the key (/home/stevenrao/.ssh/id_rsa): (直接回车)
Created directory '/home/stevenrao/.ssh'
Enter passphrase (empty for no passphrase): (输入密码)
Enter same passphrase again: (再次确认密码)
Your identification has been saved in /home/stevenrao/.ssh/id_rsa. 
Your public key has been saved in /home/stevenrao/.ssh/id_rsa.pub. 
The key fingerprint is: e8:6a:dd:2d:34:57:44:a5:61:65:75:c4:89:f2:f6:e4 stevenrao@client 
The key's randomart image is:
+--[ RSA 2048]----+
|           .+o=+=|
|           o.= .o|
|           .+    |
|       .    .o . |
|      . S  .. +  |
|     .  o .    E |
|     ..o +       |
|    ... o .      |
|   ..    .       |
+-----------------+
stevenrao@client:~$ ls -al .ssh/
total 16
drwx------ 2 stevenrao user 4096 2014-09-28 06:51 .
drwxr-xr-x 3 stevenrao user 4096 2014-09-28 06:50 ..
-rw------- 1 stevenrao user 1751 2014-09-28 06:51 id_rsa
-rw-r--r-- 1 stevenrao user  398 2014-09-28 06:51 id_rsa.pub 

2、查看公钥

stevenrao@client:~$ cat .ssh/id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAp1s5dDRyMeY7q6mRlQz5DbfKC/Ebtl5/gdanOaASjnNtJPULuTyVIj3UmYzZFVaVO+3yC31+cQTGWp2bXzKEuXqIUxhygvOCr+vwfRK8FrpXOLLF5WWQYd6UgpV6/6mgRPuVVDa39zqGwKEVBgoIpiVYRBSIywbO0Qf9SGQV4CevEny8aGTZCE/UHq19ec5w9jrsvij5ztxyFlvfjIaDOb8F/b3IqZ1v5PB5UHiJaZqE0xjxFiA6wtlprkrNOQKyBI44MCjw8P964+ED+w2I4n8TisCyok5FGBn66HzdBV59166NZfP+4CFScO8hDXpUnWPvpgjhtWUQeYCMLUp5eQ== stevenrao@client 

3、初始化,添加test.txt文件到git仓库中去

stevenrao@client:~$ mkdir /home/stevenrao/test_proj
stevenrao@client:~$ cd /home/stevenrao/test_proj
stevenrao@client:~/test_proj$ echo "test git by stevenrao v1.0" > test.txt
stevenrao@client:~/test_proj$ git init Initialized empty Git repository in /home/stevenrao/test_proj/.git/
stevenrao@client:~/test_proj$ git add .
stevenrao@client:~/test_proj$ git commit -m 'initial commit' 
stevenrao@client:~/test_proj$ git remote add origin stevenrao@172.19.44.7:/home/git/project.git
stevenrao@client:~/test_proj$ git push origin master
stevenrao@client:~/test_proj$ git push origin master 

4、配置客户端操作账户

stevenrao@client:~$ git config --global user.name "stevenrao" 
stevenrao@client:~$ git config --global user.email "stevenrao@qq.com" 

5、修改继续提交

stevenrao@client:~/test_proj$ vim test.txt 
test git by stevenrao v1.1 
stevenrao@client:~/test_proj$ git commit -m "1.1" test.txt
stevenrao@client:~/test_proj$ git push

Git客户端TortoiseGit(Windows系统)的使用方法

本文环境:

操作系统:Windows XP SP3

Git客户端:TortoiseGit-1.8.8.0-32bit

一、安装Git客户端

全部安装均采用默认!

1. 安装支撑软件

msysgit:

当前最新版本为。



2. 安装TortoiseGit

首先,要安装。

然后,安装(当前最新版本)

最后,安装TortoiseGit中文语言包


二、配置、使用TortoiseGit

1. 设置为中文界面

2. 建立版本库

在任意空的文件夹点击鼠标右键,选择“Git 在这里创建版本库”

3. clone库

在上面的文件夹点击右键,选择“拉取(Pull)”

(1) 管理远端

图2-3-1-1

图2-3-1-2

其中,URL是远端版本库的git地址

注意,一定要把“localhost”改成IP地址,否则会出现如下错误:git did not exit cleanly (exit code 128)

如果ssh修改了端口的话:需要

 ssh://git@192.168.1.102:9023/home/git/project.git 

其中:git是用户名 


(2) 生成PPK文件

在“开始”菜单,选择“TortoiseGit”中的“PuttyGen”

点击“Generate”按钮,然后,鼠标在图中红色方框的区域内不停的移动,即可生成密钥。

点击“Save private key”按钮,把生成的密钥保存为PPK文件。

确定生成。

保存到图2-3-1-2中的地址

(3) 完成clone库

4. 提交本地版本库

在本地版本库中新建立的文件图标均为

(1) 添加到本地库

鼠标右键点击如上图图标的文件,选择“增加”

这时,文件图标变为表示添加到本地库成功。

(2) 提交到本地库

鼠标右键点击如上图图标的文件,选择“Git提交(C) ... -> "master"...”

会出现提示,设置用户名和邮箱。

设置用户名、邮箱和签名密钥(PPK文件)

输入日志信息,完成提交。

5. 推送本地库到服务器

如果所有文件夹和文件的图标都如图所示,那么我们就可以把本地库推送到版本服务器了。

在本地库所在根目录(本机为D:\mydoc13\ssfc),点击鼠标右键,选择“TortoiseGit”-〉“推送”

完成推送。

------------------------------------------xiaobin_hlj80-----------------------------------------------全文End------------------------------

FAQ:

1. 关于:用户名和邮箱

用户名和邮箱,都是由版本服务器分配。就是我们在版本服务器建立用户名和邮箱,然后在客户端使用。

2. 取消上次的“Commit”操作

右击git库文件夹,选择“Git”选项卡,点击“Show log”按钮,选择要回滚的位置,点击右键选择“Reset "master" to this...”

点击“ok”完成取消操作。





快速架设一个简单的基于 SSH 的 Git 服务


一直使用在 github 上托管的 git 服务,虽然 github 的代码托管,协作,wiki 功能,以及 bug tracking 功能都非常好用。但是随着项目不断增多,github 最便宜的每月 7 美元 5 个 private 项目的容量很快不够用了。想想反正自己有一台 Linode 的  云服务器,于是诞生了自己架一套 git service 的念头,就不花钱升级 github 了。

根据 git 网站 Pro Git 书中的说明,选择 SSH 方式简单架设了一套。因为主要是自己使用,不存在提供给别人公共访问的要求,而且基本每台 Linux 服务器都可以 SSH, 所以选择了 SSH 方式。Pro Git 中对 git 可以采用的几种协议的优缺点以及适用场景都有详细介绍。下面是使用 SSH 方式的基本步骤:

有关 git 使用 SSH 的基本知识
要通过 SSH 克隆一个 Git repository,我们可以像下面这样指定 ssh:// URL :

$ git clone ssh://user@server:project.git

或者我们也可以不指定一个协议 — 如果没有显式指定的话 Git 假设是 SSH:

$ git clone user@server:project.git
我们也可以不指定一个用户,这样的话 Git 会假设是当前登录的用户(和使用 SSH 命令的情形类似)。

第一步,放一个裸的 Repository 到服务器上
假设 my_project 是我们在本地的一个 git Repository 项目目录,通过使用 --bare 参数生成只包含 git 信息的裸的项目拷贝

$ git clone --bare my_project my_project.git

第二步,通过 scp 命令把 git 拷贝存储到服务器
现在我们已经有了一个裸的 Repository 的拷贝,下一步就是把它放到服务器上。假设我们已经有了一个名为 git.example.com 的服务器,并且已经可以通过 SSH 进行访问。假设我们也在服务器的 /opt 目录下建了一个名为 git 目录专门用来存放 git 项目信息。我们就可以像下面这样通过拷贝一个裸的 Repository 到服务器上来设置一个新的 Repository:

$ scp -r my_project.git user@git.example.com:/opt/git

需要注意的是,如果我们给 SSH 设置了不同的访问端口(不是默认的 22),比如说是8080,那么我们需要用 -P 8080 参数来指定 SSH 使用的端口。

$ scp -r -P 8080 my_project.git user@git.example.com:/opt/git

第三步,使用服务器上的 git 
这时候,其他也具有到同一台服务器 SSH 访问权限的用户就可以通过运行下面的命令来克隆我们的项目啦,要求至少对 /opt/git 目录具有读取权限:

$ git clone user@git.example.com:/opt/git/my_project.git
这里同样要注意 SSH 端口的问题,如果不是默认的 SSH 端口,要像下面这样运行命令(注意没有省略 ssh://,以及 8080 端口号放置的位置)

$ git clone ssh://user@git.example.com:8080/opt/git/my_project.git
剩下的就是和通常 git 的用法一样了,git pull git push 等

例如: 
$ git pull ssh://user@git.example.com:8080/opt/git/my_project.git
希望通过 SSH 之外的其他方式来假设 git,或者像提供 git 的公共访问或是希望提供 Web 页面的,更多信息请参考 git 官方网站上的文章:。


阅读(1901) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~