您的位置:首页 > 其它

Git配置笔记

2015-06-15 21:51 274 查看

git服务器

创建git用户

$ adduser git
$ sudo usermod -G sudo git


上述命令在服务器端执行,创建git用户和提升git用户权限为sudo用户组。

工具软件安装

$ su git
$ sudo apt-get install python python-setuptools git ssh openssh-server openssh-server openssh-sftp-server ssh ssh-import-id
$ git clone https://github.com/res0nat0r/gitosis $ cd gitosis && sudo python setup.py install


上述命令在服务器端执行,在git用户的home目录下克隆gitosis仓库,然后安装。

创建管理仓库

$ gitosis-init < id_rsa.pub


上述命令在服务器端,git用户home目录执行。其中id_rsa.pub为第一位管理员公钥。可以在客户端通过
ssh-keygen -t rsa
生成(所有选择回车即可),生成结果在
$HOME/.ssh
(将id_rsa.pub复制到服务器的git用户home目录)。到此,服务器端配置完毕。

提取管理仓库

$ git@192.168.1.100:gitosis-admin.git


上述命令在客户端执行,192.168.1.100对应为实际服务器IP。

添加用户仓库

% cat gitosis.conf                                                                                                                                                             15-06-15 21:27
[gitosis]

[group gitosis-admin]
members = zhouyixing@Deepin
writable = gitosis-admin

[group mbox]
members = zhouyixing@Deepin
writable = sunxi-openwrt sunxi-kernel


修改gitosis-admin.git仓库中的gitosis.conf。如笔者添加了一个mbox组以及sunxi-openwrt和sunxi-kernel两个仓库。mbox项目有两个软件代码仓库。提交上述改动到服务器即可创建仓库。再仔细介绍一下gitosis-admin.git仓库。

$ tree gitosis-admin
gitosis-admin
├── gitosis.conf
└── keydir
└── zhouyixing@Deepin.pub


如果需要添加用户,则在keydir目录中添加用户的公钥以及在gitosis.conf中需要给该用户开启权限仓库的members添加用户名即可。注意
zhouyixing@Deepin.pub
表示为用户
zhouyixing@Deepin
的公钥。公钥和用户名必须完全一致。

初始化远程仓库

$ git remote add origin git@192.168.1.100:sunxi-kernel.git
$ git push --set-upstream origin master


到此,搭建git服务器要点基本完成。

GOGS

参考文章

Docker for Gogs

安装gogs

docker

sudo apt-get install docker.io
sudo docker pull gogs/gogs


本文展示的是运行于docker的版本。上述命令中,第一条是安装docker;第二条是下载gogs的docker镜像。

binary

软件包

下载路径

安装

在git用户模式下,解压到git用户HOME目录。然后,

# 设置开机启动
1. 将scripts/init/centos/gogs复制到/etc/init.d/gogs
2. 建立软链接/etc/rc3.d/S92gogs指向/etc/init.d/gogs

# 立即启动
1. /etc/init.d/gogs start

# 登陆配置
浏览器打开网页http://ip:3000


运行

sudo docker run --name=gogs -p 10022:22 -p 10080:3000 -v /gogs:/data gogs/gogs


运行后,浏览器打开网页
http://192.168.8.253:10080
。浏览器端需要选择数据库,注册网站用户以及建立组织以及仓库等等。这里需要注意的是
/gogs
为gogs根目录,请合理设定权限。

git客户端

乱码配置

配置命令:

[zhouyixing@LinuxServer app]$ git config --global gui.encoding gb18030
[zhouyixing@LinuxServer app]$ git config --global i18n.commitencoding gb18030
[zhouyixing@LinuxServer app]$ git config --global i18n.logoutputencoding gb18030
[zhouyixing@LinuxServer app]$ git config --global i18n.logoutputencoding gb18030
[zhouyixing@LinuxServer app]$ git config --global core.quotepath false


另:

因为git会调用设置文本编辑器,所以相应的文本编辑器也应该设定编码。设置方法是通过更改~/.vimrc文件,添加如下内容。

set fileencodings=gb18030,utf-8,cp936,big5,euc-jp,euc-kr,latin1,ucs-bom


管理空目录

find . -type d -empty -exec touch {}\/.gitignore \;

另:find . -regex ‘.*.gitignore’ -exec rm -rf {} \;

分支管理

分支合并

分支合并存在的理由是保存源分支的提交信息到目的分支。切换至目的分支,命令如下

git merge src_branch_name


注意,如果是分叉之后,源分支和新分支各有提交产生了差异就需要使用者自己合并差异。建议合并之后再与目的分支和源分支做一下对比。

本地分支删除

git branch -d branch_name


本地分支删除不影响远程分支。

远程分支删除

git push origin :branch_name


该命令是直接删除远程分支,请务必清楚其后果!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: