zoukankan      html  css  js  c++  java
  • centos7 php开发环境安装-Git

    Git 的2中安装方法

    1. yum命令安装:

    yum install -y git

    2. 服务编译安装(推荐)

         2.1 安装依赖包

    yum install -y wget
    
    yum install -y gcc-c++
    
    yum install -y zlib-devel perl-ExtUtils-MakeMaker

       2.2 下载最新git

    cd /usr/local/src
    
    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.9.0.tar.gz

       2.3 编译安装git

    tar -zxvf git-2.9.0.tar.gz
    
    cd git-2.9.0
    
    ./configure --prefix=/usr/local/git
    
    make
    
    make install

        2.4 添加环境变量

    1.将 /usr/local/git/bin 加到后面,用:隔开
    
           vim /root/.bash_profile    
    
           PATH=$PATH:$HOME/bin:/usr/local/git/bin
    
    2.重启
    
           source /root/.bash_profile

       2.5查看git版本

    git --version

    3创建git用户 

    groupadd git
    
    useradd git -g git
    
    passwd git               #设置密码 参数是用户名
    
    su - git                 //切换git用户

    4创建证书

            4.1 客户端安装git,设置key  

    git config --global user.name "dddd"
    
    git config --global user.email "qq@qq.com"
    
    ssh-keygen -t rsa -C "your_email"

               该命令会产生两个文件: id_rsa对应私钥,id_rsa.pub对应公钥。将id_rsa.pub中的内容写到服务器的authorized_keys文件中。如果有多个客户端,那么在authorized_keys文件中,一行保存一个客户端的公钥

           4.2  服务器端:  创建authorized_keys文件

    cd /home/git
    
    mkdir .ssh
    
    chmod 700 .ssh
    
    touch .ssh/authorized_keys
    
    chmod 600 .ssh/authorized_keys
    
    cd /home
    
    chown -R git:git git

           4.3 配置RSA

             进入 /etc/ssh 目录,编辑 sshd_config,打开以下三个配置的注释:

    RSAAuthentication yes  最新版centos7.4无需配置、没有的不配置
    
    PubkeyAuthentication yes
    
    AuthorizedKeysFile      .ssh/authorized_keys

        4.4 保存并重启 sshd 服务:

    service sshd restart

           4.5 将客户端公钥导入服务器端 /home/git/.ssh/authorized_keys 文件 

    ssh git@192.168.136.19 'cat >>.ssh/authorized_keys' < ~/.ssh/id_rsa.pub

    5git设置为默认路径,不然后面克隆时会报错

         

    ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
    
    ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack

    6. 初始化Git仓库

         

    #进入home目录
    
    cd /home
    
    #创建gitdemo目录
    
    mkdir gitdemo
    
    # 利用 chown 将指定文件的拥有者改为指定的用户或组
    
    # 把仓库所属用户改为git
    
    chown git:git gitdemo/
    
    cd gitdemo
    
    #现有仓库导出为裸仓库——即一个不包含当前工作目录的仓库
    
    git init --bar demo.git
    
    #把仓库所属用户改为git
    
    #-R : 处理指定目录以及其子目录下的所有文件
    
    #将目录下的所有文件与子目录的拥有者皆设为git群体的使用者 git :
    
    chown -R git:git demo.git
    
    #以后每创建一个新的仓库.都需要执行上面的命令(修改仓库所属用户为git)

    7. 克隆仓库

    git clone git@192.168.**.**:/home/gitdemo/demo.git

    8. 禁止git用户  Shell登录

    vim /etc/passwd
    
    git:x:502:502::/home/git:/usr/local/git/bin/git-shell

    9.git常用操作

    $ git config --global user.name "Your Name"
    $ git config --global user.email "email@example.com"
    
    $ ssh-keygen -t rsa -C "youremail@example.com" 创建ssh key,用于和github通信
    (秘钥存储于C:Users27634.ssh,把公钥id_rsa.pub存储于github)
    
    创建版本库
    $ pwd 命令用于显示当前目录(没啥用)
    $ git init 把这个目录变成Git可以管理的仓库(后续新建提交和ssh克隆需要)    
    
    操作版本库
    $ git add 文件名 添加文件(新增或者更改都需要先add)
    $ git commit -m "说明" 提交到本地版本库
    
    $ git status 查看仓库状态
    $ git diff 文件名 查看修改的地方
    
    版本回退(从一个commit恢复)
    $ git log 查看版本历史
    $ git reset --hard HEAD^ 回退到上个版本
    $ git reset --hard 1094a 回退到特定版本号(commit以后回退)
    $ git reflog 记录每一次命令
    
    $ git checkout -- file 直接丢弃工作区的修改(add以前回退)
    $ git reset HEAD <file> 添加到了暂存区时,想丢弃修改(add以后回退)
    
    删除文件
    $ git rm file(已经add/commit,在目录中删除)
    
    $ git checkout -- file 删错了回退
    
    远程仓库
    $ git remote add origin git@server-name:path/repo-name.git 关联远程库
    $ git push -u origin master 第一次的push
    $ git push origin master 常用的push,本地分支会在服务器上新建分支
    $ git pull 需要有关联的分支,第一次下拉最好新建一个空文件夹
    $ git branch --set-upstream-to=origin/远程分支 本地分支 关联分支
    
    $ git clone git@server-name:path/repo-name.git 克隆(不需要另建文件夹)
    
    分支
    $ git branch -a 查看所有分支
    $ git branch -vv 查看分支关联
    $ git branch dev 创建分支
    $ git checkout dev 切换分支
    $ git merge dev 合并某分支到当前分支
    $ git merge --no-ff -m "msg" dev 普通模式合并,合并后的历史有分支
    $ git branch -d dev 删除分支
    $ git checkout -b dev 创建并切换分支
    
    
    合并分支,无法merge
    $ git stash save 名字 暂存工作状态
    $ git pull origin dev 拉下来 
    $ git stash list 查看已经暂存的状态
    $ git stash pop stash@{0} 将暂存状态merge到当前分支
    还有冲突时,手动修改文件,然后add/commit
    $ git log --graph 分支合并图
    
    bug分支issue
    $ git stash 暂存工作状态
    $ git stash list 查看暂存工作状态
    $ git stash pop 恢复暂存状态并删除状态
    
    开发分支feature
    $ git branch -D <name> 强制删除未合并的分支
    
    rebase
    $ git rebase 本地未push的分叉提交历史整理成直线
    
    标签
    $ git tag 标签名 打在最新提交的commit上
    $ git tag 查询所有标签
    $ git tag 标签名 f52c633 给特定的commit打标签
    $ git tag -a 标签名 -m "msg" commit的id 给标签设置说明
    $ git show 标签名 查询标签内容
    $ git tag -d 标签名 删除标签
    $ git push origin 标签名 推送某个标签到远程
    $ git push origin --tags 推送所有标签
    $ git push origin :refs/tags/<tagname> 可以删除一个远程标签。
  • 相关阅读:
    Python 爬虫一 简介
    linux 基础笔记本
    Celery 分布式任务队列快速入门
    Git & Github
    Python 设计模式
    Python 数据结构
    Python 基础算法
    js2wordcloud 词云包的使用
    lambda 3
    sql server 远程
  • 原文地址:https://www.cnblogs.com/ddf128/p/12123962.html
Copyright © 2011-2022 走看看