搭建自己的git 代码服务器

搭建自己的git 代码服务器

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
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步骤)

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、配置stevenrao用户秘钥

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

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2014-09-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏面朝大海春暖花开

properties文件乱码问题 eclipse

java最常用的开发工具eclipse里面的properties配置文件里面打开中文是乱码的,解决方式很简单。

58520
来自专栏Java帮帮-微信公众号-技术文章全总结

Linux常用命令

Linux常用命令 常用指令 ls   显示文件或目录 -l 列出文件详细信息l(list) -a ...

55960
来自专栏编程坑太多

『中级篇』在docker-swarm集群里通过serivce部署wordpress(46)

PS :不知道大家还有没有影响讲docker的多机网络的时候,多机的overlay网络的时候,使用的第三方的kv的外置的第三方的存储etcd。我们在用了swar...

12140
来自专栏Java成神之路

Linux_服务器_02_在linux上怎么看eclipse控制台输出语句

在windows下,tomcat启动之后有一个黑窗口,很容易看到System.out.println或ex.printStackTrace这样的函数输出,非常方...

12740
来自专栏深度学习自然语言处理

【linux】常用命令之scp命令

今天需要在两个服务器之间进行数据copy,但是居然忘了linux命令,于是这里记录下,加深记忆!

12020
来自专栏编程

Python接口自动化-3-POST请求

POST请求 HTTP协议规定post提交的数据必须放在消息主体中,但是协议并没有规定必须使用什么编码方式。服务端通过是根据请求头中的Content-Type字...

29280
来自专栏java一日一条

理解Cookie和Session机制

会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。Cookie通过在客户端记录信息确...

24110
来自专栏python3

python3--进程,线程,协程效率对比

1 使用subprocess模块,来调用系统命令,执行ping 192.168.11.xxx 命令

16010
来自专栏有趣的django

9.Flask Cookie和Session

cookie:在网站中,http请求是无状态的。也就是说即使第一次和服务器连接后并且登录成功后,第二次请求服务器依然不能知道当前请求是哪个用户。cookie的出...

22710
来自专栏Java3y

Tomcat+Servlet面试题都在这里

下面是我整理下来的Servlet知识点: ? 图上的知识点都可以在我其他的文章内找到相应内容。 Tomcat常见面试题 Tomcat的缺省端口是多少,怎么修改 ...

45130

扫码关注云+社区

领取腾讯云代金券