美文网首页
git服务搭建-远程仓库

git服务搭建-远程仓库

作者: 断水流大师兄vs魔鬼筋肉人 | 来源:发表于2018-07-18 20:52 被阅读0次

    1.安装:所有机器都安装
    user 分库
    server 主库
    两台做
    ================================================================

    两台做
        # 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文件里,一行一个。

    user:
    yum -y install openssh-clients
    ssh-keygen
    ssh-copy-id -i git@IP(server)            传给主库
    

    ===========================================================
    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/test.git,在/home/gitrepo目录下输入命令:

    $ cd /home
    $ mkdir gitrepo
    $ chown git:git gitrepo/
    $ cd gitrepo
    $ git init --bare test.git           名字随意         初始化
    $ chown -R git:git test.git
    
    得到主库—无法创建和显示提交的文件

    方案一:克隆

    克隆仓库——分库 user

    创建库
    进入+初始化======>>>>>>>>>>克隆
    user克隆:
    $ git clone git@server(IP):/home/gitrepo/test.git
    
    得到空库
    #cd runoob.git                               进入
    #vim a.txt                                       创建
    #git add a.txt                                  提交
    #git commit -m "a"
    #git push -u origin master              推送到库
    获得库内容:git pull origin master 和     git pull --rebase origin master
    

    方案二:远程连接

    本地创建项目根目录, 然后与远程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                                 推送
    

    远程仓库未创建

    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 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
    

    相关文章

      网友评论

          本文标题:git服务搭建-远程仓库

          本文链接:https://www.haomeiwen.com/subject/ivnnpftx.html