zoukankan      html  css  js  c++  java
  • Git初始配置

    Git客户端的工作

    安装完成后,还需要最后一步设置,在命令行输入

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"

    查看用户名和用户邮箱

    $ git config user.name    查看用户名
    $ git config user.email    查看用户邮箱

    修改用户名和用户邮箱

    $ git config --global user.name "username"    修改用户名
    $ git config --global user.email "email"    修改用户邮箱

    本地创建Git仓库,创建一个空文件夹,Git Bash Here

    $ git init
    Initialized empty Git repository in /Users/michael/learngit/.git/

    本地创建公钥和私钥

    $ ssh-keygen -t rsa -C "415459282@qq.com"
    # 接下来,三个回车默认即可

    命令中的-C "user.email"也可以不填即$ ssh-keygen -t rsa 可以对比一下填和不填的区别:

    这是两台机器生成SSH key的两种方式,填了email的,生成的公钥末尾是email;没填email的,生成的公钥末尾是电脑的登录名@计算机名。

    Git服务器端的工作

    将管理员的公钥上传到Git服务器

    我这里liangyadong.pub为管理员的公钥,上传到/home/git/目录下了。

    安装配置gitolite

    用git账号登录,并执行如下命令。

    # 切换到git账号
    $ su git
    
    # 进入git主目录
    $ cd /home/git
    
    # 下载gitolite的仓库
    $ git clone https://github.com/sitaramc/gitolite
    
    # 创建bin文件夹,必须!!!
    $ mkdir -p $HOME/bin
    
    # 用下载下来的仓库中的insall执行安装操作,指向的目录就是上一命令行创建的目录
    $ ./gitolite/install -to $HOME/bin
    
    # 把上传到服务器的 管理员的公钥setup到gitolite中,注意:YourName.pub改成你自己的文件名。
    $ ~/bin/gitolite setup -pk ~/YourName.pub
    
    # 此时安装配完成后,查看git主目录
    $ ls /home/git
    drwxr-xr-x   7 git  git  4096 Apr  3 23:50 bin               # 我们创建的存放gitolite二进制
    drwxrwxr-x   6 git  git  4096 Apr  3 23:40 gitolite
    drwx------   6 git  git  4096 Apr  3 23:52 .gitolite
    -rw-------   1 git  git  7130 Apr  3 23:52 .gitolite.rc
    -rw-------   1 git  git   398 Apr  3 23:39 malun.pub         # 管理员的公钥
    drwxrw----   3 git  git  4096 Apr  3 23:40 .pki
    -rw-------   1 git  git    19 Apr  4 00:26 projects.list     # 仓库列表(gitolite自动创建)
    drwx------   5 git  git  4096 Apr  4 00:26 repositories      # 存放所有仓库文件夹
    drwx------   2 git  git  4096 Apr  4 15:50 .ssh
    
    # repositories目录下已经有了两个git仓库了。
    # .
    # |-- gitolite-admin.git    # 管理配置权限的仓库
    # `-- testing.git           # 测试仓库

    好了,到此位置,管理员就可以直接把默认的远程管理的仓库gitolite-admin直接clone到本地进行管理git服务了。

    第五步:管理员在本地管理(客户端)和配置服务器端的仓库

    下载服务器端的远程管理仓库

    # 下载远程管理仓库, 请把aicoder.com换成你自己服务器的域名或者ip
    $ git clone git@aicoder.com:gitolite-admin
    $ cd gitolite-admin
    # 目录结构如下:
    # .
    # ├── conf                # 配置文件夹
    # │   └── gitolite.conf   # 配置权限的文件
    # └── keydir              # 客户端的公钥文件夹,所有伙伴的公钥要放到此目录下
    #     └── malun.pub

    参考https://www.cnblogs.com/yadongliang/p/10604331.html#_label1中第6步

     gitolite的权限配置

    • 添加其他开发的小伙伴

      把小伙伴的公钥发给管理员。管理员添加到gitolite-admin仓库的keydir目录下,注意文件名字格式为username.pub,username就是配置权限时的用户名。

    • 配置用户对仓库的读写权限

      直接修改conf文件夹下的,gitolite.conf文件。简单解释下几个用法:

      • repo代表仓库的意思,如果新添加一个repo,代表服务端新建一个空仓库,仓库在conf配置文件push到服务端后会自动创建。
      • RW 代表可读可写
      • @all 代表所有人。
      • master和 dev代表分支

      参考:

      @admin = malun  
      @om = malun bcd  
        
      repo gitolite-admin  
          RW+     =   malun 
        
      repo testing  
          RW+     =   @all  
        
      repo om  
          RW+     =   @admin  
          RW+ master = @admin  
          RW+ dev  =   @om  
    • 应用修改到服务器端

    做好配置后,由管理员把修改push到服务器端,会自动处理。

    $ git add conf
    $ git add keydir
    $ git commit -m "added foo, gave access to alice, bob, carol"
    $ git push

    此时登录服务端,查看/home/git/repositories/目录下是否增加了对应的仓库了呢?

     另外,使用gitolite控制权限不需要修改/etc/passwd文件了,修改了反而会报错.

  • 相关阅读:
    OkHttp的使用
    Adapter的实现
    RxJava的学习与实现
    Blueprint的实现
    The second group meeting!
    读书笔记1
    The First Team Meeting!
    java----使用NIO进行快速的文件拷贝
    java——类的学习(2)
    java——类的学习(1)
  • 原文地址:https://www.cnblogs.com/yadongliang/p/11130056.html
Copyright © 2011-2022 走看看