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
dockersudo 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
该命令是直接删除远程分支,请务必清楚其后果!
相关文章推荐
- MySQL按照汉字拼音字母排序
- MySQL按照汉字拼音字母排序
- 非ARC环境下快速创建数组的注意点
- C++中const与指针、引用的分析
- java之弱引用
- Maven-生命周期
- WEB服务器与应用服务器
- PHP 中加载类文件的几种方法
- SCRUM浅谈,User Story,Sprint,Burn Down Chart
- Maven-常用命令
- 实验二-2 Eclipse&Hadoop 做英文词频统计进行集群测试
- ~一些重要的东西~
- quick中使用JPG+mask文件制作刀塔传奇中的遮罩效果
- 忍——自作多情。
- SeqList.
- python读取mnist
- 基于Spark MLlib平台的协同过滤算法---电影推荐系统
- 求一个数据结构C语言 关于关键字统计源代码
- EIGRP汇总路由配置和默认路由下发
- 黑马程序员----IO流