一、安装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目录下。