Git 服务器搭建
环境:
vim /etc/hosts
192.168.44.128 server
192.168.44.131 user
1.安装:所有机器都安装
# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
# yum install git -y
# git --version
# git version 1.8.3.1
2.准备:
因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。你也许会担心,如果有人故意冒充别人怎么办?这个不必担心,首先我们相信大家都是善良无知的群众,其次,真的有冒充的也是有办法可查的。
注意git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Email地址。
# git config --global user.email "1039095857@.com"
# git config --global user.name "guoqingyangzz"
3.接下来我们 创建一个git用户组和用户,用来运行git服务:
$ groupadd git
$ useradd git -g git
2、创建证书登录
收集所有需要登录的用户的公钥,公钥位于id_rsa.pub文件中,把我们的公钥导入到/home/git/.ssh/authorized_keys文件里,一行一个。
yum -y install openssh-clients
ssh-keygen -t rsassh-copy-id -i git@server
如果没有该文件创建它:
$ cd /home/git/
$ mkdir .ssh
$ chmod 755 .ssh
$ touch .ssh/authorized_keys
$ chmod 644 .ssh/authorized_keys
3.禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd文件完成。找到类似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
4.初始化Git仓库
首先我们选定一个目录作为Git仓库,假定是/home/gitrepo/runoob.git,在/home/gitrepo目录下输入命令:
$ cd /home
$ mkdir gitrepo
$ chown git:git gitrepo/
$ cd gitrepo
$ git init --bare runoob.git
Initialized empty Git repository in /home/gitrepo/runoob.git/
以上命令Git创建一个空仓库,服务器上的Git仓库通常都以.git结尾。然后,把仓库所属用户改为git:
$ chown -R git:git runoob.git
5.克隆仓库
$ git clone git@server:/home/gitrepo/runoob.git
Cloning into 'runoob'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.
192.168.44.128 为 Git 所在服务器 ip 。
6.1 方案1、就是不用关联Git仓库, 直接从Git中克隆源码到本地, 项目根目录也不用创建
在user 客户机克隆远程仓库:
现在,可以通过git clone命令克隆远程仓库了,在各自的电脑上运行:
# git clone git@server:/home/gitrepo/runoob.git
Cloning into 'sample'...
warning: You appear to have cloned an empty repository.
#cd runoob.git
#vim a.txt
#git add a.txt
#git commit -m "a"
#git push -u origin master
这样我们的 Git 服务器安装就完成。
6.2 方案2、本地创建项目根目录, 然后与远程Git关联, 之后的操作一样:
# mkdir xxx
# cd xxx
# git init
# git remote add origin git@server:/home/gitrepo/runoob.git/
# vim cc.txt
# git add cc.txt
# git commit -m "cc"
#git pull --rebase origin master
# git push -u origin master
8. 分支 在客户机写 user(192.168.44.131)
远程仓库未创建
git init 初始化一只本地仓库
把你的项目扔进去(或者基于初始化仓库建立项目vue init webpack demoxxxx)
git status //查看状态
git add -A //提交所有文件改动
git remote add origin ssh地址 // 链接远程仓库步骤1
git push -u origin master //链接远程仓库步骤2
git add -A //提交所有文件改动
git status //查看状态
git commit -m "xx" //备注功能
git status //查看状态
git pull origin master //拉最新代码 (下载)
git push origin master //推送到远程 (上传)
远程仓库已创建:
git clone xxxxxxxxxxxx
关联远程
git remote add origin ssh地址 // 链接远程仓库步骤1
git pull origin master //拉最新代码 (下载)
git add -A //提交所有文件改动
git commit -m "xx" //备注功能
git push origin master //推送到远程 (上传)
要检查已有的配置信息
[root@server etc]# git config --list
user.email=811259960@.com
user.name=guoqingyangzz
查看配置信息
要检查已有的配置信息,可以使用 git config --list 命令:
$ git config --list
http.postbuffer=2M
user.name=runoob
user.email=test@runoob.com
有时候会看到重复的变量名,那就说明它们来自不同的配置文件(比如 /etc/gitconfig 和 ~/.gitconfig),不过最终 Git 实际采用的是最后一个。
这些配置我们也可以在 ~/.gitconfig 或 /etc/gitconfig 看到,如下所示:
vim ~/.gitconfig
显示内容如下所示:
[http]
postBuffer = 2M
[user]
name = runoob
email = test@runoob.com
也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可,像这样:
$ git config user.name
runoob