Git 相关命令
Author : Janloong Do_O
基本配置
git推送
git默认不会把tag推送到远程仓库,需使用命令
git push origin [tagname]
一次将所有tag推送
git push origin –tags
git远程仓库拉取
git clone git@gitlab.com:Janloong-Doo/hacker.git
ssh秘钥生成
~$ ssh-keygen -t rsa -C "807110586@qq.com"
ssh-keygen -t rsa -b 4096 -C "807110586@qq.com"
github连接测试
ssh -T git@github.com
配置github用户名邮箱
git config --global user.name "NAME"
git config --global user.email "EMAIL"
查看git设置
git config --list
Git服务器搭建
$ sudo apt-get install git
添加git用户(系统级用户)
$ sudo adduser git
可使用 su git 切换测试是否成功
证书导入
/home/git/.ssh/authorized_keys
初始化一个裸仓库
$ sudo git init --bare sample.git
修改git仓库所属用户为配置的git用户
sudo chown -R git:git [path]
$ sudo chown -R git:[git] sample.git
禁用shell登录
修改 /etc/passwd 文件:
将:
git:x:1000:1000:,,,:/home/git:/bin/bash
改为:
git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
Gitosis管理公钥
待补充
Gitolite管理权限
安装
sudo apt-get install gitolite3
添加一个git用户
sudo adduser --system --shell /usr/bin/zsh --gecos 'git version control' --group --disabled-password --home /home/git git
设置gitolite
sudo su - git
git用户下
gitolite setup -pk /tmp/git-admin.pub
管理gitolite
切换回本地
git clone git@qcloud-cvm-ip:gitolite-admin
添加新用户
cp /path/to/username/public/key.pub ~/gitolite-admin/keydir/username.pub
git add keydir/pythontg.pub
git commit -m 'New user username added'
git push
配置权限
警告信息,该信息表示新用户没有在配置文件中出现。这意味着,虽然 Gitolite 已经知道新建了这么一个用户,但是还没有为新用户创建任何权限。
remote:
remote: ***** WARNING *****
remote: the following users (pubkey files in parens) do not appear in the config file:
remote: pythontg(pythontg.pub)
编辑 ~/gitolite-admin/conf/gitolite.conf 文件,并为其创建一个新仓库:
repo gitolite-admin
RW+ = git-admin
repo testing
RW+ = @all
repo username
RW+ = username
权限说明
权限的定义如下:
R 表示只读
RW 表示可读或推送更改,但不能删除 git ref
RW+ 表示可读、可写,而且可以删除 git ref
仓库克隆
git clone git@qcloud-cvm-ip:username