介绍几个名词
- git是一种版本控制系统,同时也是git的client端。
- gitlib : 用于实现git功能的开发库
- github : 是git全球的版本管理库,向公众开放。
gitlab : 可以理解为是自己搭建的本地 github 。
Gitlab 的搭建过程
yum install curl policycoreutils openssh-server openssh-clients yum install postfix curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh |sudo bash yum install gitlab-ce gitlab-ctl reconfigure #启动gitlab社区版
Gitlab 默认的文件目录
主配置文件:/etc/gitlab/gitlab.rb //可以自定义一些邮件服务等 日志地址:/var/log/gitlab/ // 对应各服务 服务地址:/var/opt/gitlab/ // 对应各服务的主目录 仓库地址:/var/opt/gitlab/git-data //记录项目仓库等提交信息 重置配置:gitlab-ctl reconfigure //不要乱用,会重置为最原始的配置的 重启服务:gitlab-ctl stop/start/restart //启动命令 默认安装:postgres、nginx、redis、unicorn ......
- 创建时可导入 github、gitlab、googlecode 等其他地方的仓库,需要对方token
- svn 项目迁移至Git工具: git-svn-transfer
- git 根据日期统计代码量
git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --since ==2017-04-21 --until==2017-05-21 --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 + $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' - # git统计某人的代码提交量,包括增加、删除
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5 #统计提交的前5名
git log --oneline | wc -l # 提交数统计
将本地项目上传到 Gitlab
cd "本地存在项目的路径"
git init
git remote add origin git@gitlab.com:USERNAME/PROJECTNAME.git
git add .
git commit -m "first git demo"
git push -u origin master
导入Git项目到本地
git clone git@gitlab.com:USERNAME/PROJECTNAME.git