您的位置:首页 > 运维架构 > Linux

Centos搭建Git服务

2017-08-22 17:37 483 查看
一、安装Git

-bash-4.1#yum install git

安装完之后,查看 Git 版本

-bash-4.1# git --version

git version 1.7.1

二、服务器端创建git用户,用来管理Git服务,并未git用户设置密码

-bash-4.1#id git // 查看git用户是否已存在

id: git: No such user

-bash-4.1# useradd git // 新增用户git

-bash-4.1# passwd git // 给用户git设置密码

以上操作完成后,/home目录会多出一个git目录。

三、服务端创建Git仓库

-bash-4.1# mkdir -p /home/git/test.git // 创建一个服务器仓库目录,必须以.git结尾,此处参数-p会自动创建给定路径的所有目录,例:如git目录不存在,则会自动创建

-bash-4.1# git init --bare test.git // 初始化仓库

Initialized empty Git repository in /home/git/test.git/

-bash-4.1# cd /home/git/

-bash-4.1# chown -R git:git test.git // chown命令更改文件夹拥有者,chown [-R] 账号名称:用户组名称 文件或目录

四、客户端clone远程仓库

C:\Users\xxx>git clone git@45.62.*.*:/home/git/test.git

Cloning into 'test'...

ssh: connect to host 45.62.*.* port 22: Connection refused

fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.
这时候报错了,在网上搜了下,这里如果不指定端口号的话,git会默认去找22端口,而我的服务器SSH端口已经改了,那么如何指定端口号呢?

采用如下格式:

git clone ssh://git@hostname:port/.../xxx.git

C:\Users\xxx>git clone ssh://git@45.62.*.*:888/home/git/test.git
Cloning into 'test'...
git@45.62.*.*'s password:
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (5/5), 419 bytes | 0 bytes/s, done.

git init --bare和git init的区别:

git init --bare xxx.git 用于在服务端建立仓库,该命令生成一系列文件,用于版本库历史记录。



这个仓库只保存历史提交的版本信息,你在服务端上无法直接对这个仓库进行操作,只能在客户端clone这个仓库,然后在本地进行操作,commit到服务端仓库。如果你在服务端强行进行git操作,那么就会出现下面的提示:

-bash-4.1# git add .

fatal: This operation must be run in a work tree

git init 用于在客户端建立仓库,该命令生成.git目录以及其下的版本历史记录文件,这些版本历史记录文件就存放在.git目录下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: