git-v2.7.4.zip

 一、git编译安装

#安装依赖
yum update -y
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

wget https://github.com/git/git/archive/v2.7.4.zip
unzip v2.7.4.zip
cd git-2.7.4
make prefix=/usr/local/git all
make prefix=/usr/local/git install
rm -rf /usr/bin/git
ln -s /usr/local/git/bin/git /usr/bin/git
git --version

 二、初始化

mkdir testdir 
cd testdir
git init

git config --global user.name "qinzc"
git config --global user.email 

git config --list

三、常用命令

git add                       //加入暂存(索引区)
git status                    //查看状态
git status -s                 //状态概览
git diff                      //尚未暂存的文件
git diff --staged             //暂存区文件
git commit                    //提交更新
git reset                     //回滚
git rm                        //从版本库中移除
git rm --cached README        //从暂存区中移除
git mv                        //相当于mv git rm git add三个命令

四、分支管理

git branch fenzhi-about    //创建分支
git checkout fenzhi-about  //切换分支

git branch         //列出当前所在分支
git branch –v
git branch –merged   ///查看已mmerged的分支
git branch --no-merged  //查看未merged的分支
git branch -d testing  //删除分支
git checkout     //切换分支
git checkout  -- 1.txt   //撤销对文件的修改
git merge fenzhi   //融合分支  
git log      //查看最近n次的提交信息
git stash      //将当前工作区的修改暂存起来
git tag      //打标签
git reset     //回滚
--soft  缓存区和工作目录都不会被改变
--mixed 默认选项。缓存区和你指定的提交同步,但工作目录不受影响
--hard 缓存区和工作目录都同步到你指定的提交


五、远程仓库

git clone https://github.com/guohongze/adminset.git   //远程仓库克隆到本地仓库
git pull                   //通过认证后,更新拉到本地仓库
git fetch                  //拉到本地仓库,不同步到主分支
git push origin master               //推到远程仓库
git remote 
git remote –v
git remote add xxx http://xxx
git remote show origin
git remote rename pb paul
git tag -a v1.0 -m ‘abc’           //加标签

六、gitlab安装管理

#安装依赖
#centos6安装
sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh

#centos7安装
sudo yum install curl policycoreutils openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld

rpm -ivh gitlab-ce-7.10.0~omnibus.2-1.x86_64.rpm

#清华tuna 的源: https://mirrors.tuna.tsinghua.edu.cn/help/gitlab-ce/ 
#修改配置文件
vim vim /etc/gitlab/gitlab.rb 
external_url 'http://192.168.1.10'

#初始化
gitlab-ctl reconfigure
gitlab-ctl status

#常用命令
gitlab-ctl status
gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart
gitlab-ctl tail nginx            //查看日志 nginx /var/log/gitlab
ssh-keygen  //生成密钥

#常用目录
/var/opt/gitlab/git-data/repositories/root:       // 库默认存储目录
/opt/gitlab:                                //应用代码和相应的依赖程序
/var/opt/gitlab:gitlab-ctl reconfigure            //命令编译后的应用数据和配置文件,不需要人为修改配置
/etc/gitlab:                                      //配置文件目录
/var/log/gitlab:                                //此目录下存放了gitlab各个组件产生的日志
    /var/opt/gitlab/backups/:                    //备份文件生成的目录
    
#变更配置文件需要以下操作
1、gitlab-ctl reconfigure                 //重置配置文件
2、gitlab-ctl show-config                 //验证配置文件
3、gitlab-ctl restart                     //重启gitlab服务

#备份管理
#配置文件中加入
gitlab_rails['backup_path'] = '/data/backup/gitlab'
gitlab_rails['backup_keep_time'] = 604800
#如果自定义备份目录需要赋予git权限
mkdir /data/backup/gitlab
chown -R git.git /data/backup/gitlab
#定时任务Crontab中加入
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create

策略建议:本地保留三到七天,在异地备份永久保存

#恢复
停止数据写入服务
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

gitlab-rake gitlab:backup:restore BACKUP=1492296095
date -d @1492296095

#邮件配置
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'guohongze@126.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.126.com"
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = "guohongze"
gitlab_rails['smtp_password'] = "your_password"
gitlab_rails['smtp_domain'] = "126.com"
gitlab_rails['smtp_authentication'] = "login"
#gitlab组件

nginx:静态Web服务器
gitlab-shell:用于处理Git命令和修改authorized keys列表
gitlab-workhorse:轻量级的反向代理服务器
logrotate:日志文件管理工具
postgresql:数据库
redis:缓存数据库
sidekiq:用于在后台执行队列任务(异步执行)
unicorn:GitLab Rails应用是托管在这个服务器上面的。

参考:https://xuanwo.org/2016/04/13/gitlab-install-intro/