美文网首页
Git客户端安装使用与服务端搭建

Git客户端安装使用与服务端搭建

作者: boker365 | 来源:发表于2020-03-19 20:23 被阅读0次

    直接上干货

    windows本地安装Git

    官网下载地址:https://git-scm.com/downloads

    Git基本使用方式

    • 在GitHub注册账号登录并新建一个仓库 New Repository
    • 复制仓库地址链接
    • 在本地某个目录shift+鼠标右键打开cmd
    • 输入git clone 地址链接下载仓库中的文件
    • 修改文件
    • 在cmd中输入git add 文件名
    • 在cmd中输入git commit -m 描述文字提交修改
    • 在cmd中输入git push 地址链接上传修改到github
    • 还可安装第三方海龟工具,可视化操作git

    Git工作流类型

    • 实际工作中,集中式工作流和GitFlow工作流用得最多

    集中式工作流

    • 方便svn用户快速迁移到git
    • 适合小型团队或者个人用户
      如果你的开发团队成员已经很熟悉Subversion,集中式工作流让你无需去适应一个全新流程就可以体验 Git 带来的收益。这个工作流也可以作为向更 Git 风格工作流迁移的友好过渡。

    功能分支工作流

    • 适合小型工作团队
      功能分支工作流以集中式工作流为基础,不同的是为各个新功能分配一个专门的分支来开发。这样可以在把新功能集成到正式项目前,用 Pull Requests 的方式讨论变更。

    GitFlow工作流

    • 适合全公司协同工作
      GitFlow 工作流通过为功能开发、发布准备和维护分配独立的分支,让发布迭代过程更流畅。严格的分支模型也为大型项目提供了一些非常必要的结构。

    Forking工作流

    • 适合跨国公司大型协作
      Forking 工作流是分布式工作流,充分利用了Git在分支和克隆上的优势。可以安全可靠地管理大团队的开发者(developer),并能接受不信任贡献者(contributor)的提交。

    Pull Requests

    • 分布式git交流
    • 又称为merge requests 合并请求
      Pull requests 让开发者更方便地进行协作的功能,提供了友好的Web界面可以在提议的修改合并到正式项目之前对修改进行讨论。

    集中式工作流

    • 在GitHub上新建一个Repository,复制地址链接
    • 在本地新建小明文件夹和小红文件夹
    • 小明文件夹使用git clone命令或者右键可视化界面下载
    • 小红文件夹使用git clone命令或者右键可视化界面下载
    • 小明新建文件,commitpush
    • 小红先 pull,后新建或者修改已有文件,commitpush

    功能分支工作流

    • 小明在右键乌龟git工具中创建并切换到子分支

    • 小明在子分支中工作,commitpush

    • 小明在中央仓库请求合并 pull request

    • 主分支管理员同意合并 Merge pull request

    • 小明切换回master主分支,并pull重新拉取主分支

    • 小明在右键乌龟git中,切换分支选项的...中,右键删除子分支

    • 删除的子分支,包括本地子分支和远程子分支

    • 在中央仓库中发现,子分支没有了

    • 主干分支一定不要被污染

    GitFlow工作流

    • 下述流程图代码复制到有道云笔记中可以查看流程图
    graph TB
    Z((开始))-->A(主管创建中央仓库)
    A-->A1(主管pull master分支到本地仓库)
    A1-->A2(主管在本地仓库创建develop分支)
    A2-->A3(主管将本地仓库push到中央仓库)
    A3-->B(组员1将中央仓库clone到本地仓库)
    A3-->C(组员2将中央仓库clone到本地仓库)
    B-->B1(组员1在本地以develop为基准创建并切换Feature分支)
    C-->C1(组员2在本地以develop为基准创建并切换Feature分支)
    B1-->B2(组员1在本地仓库完成任务并commit-push)
    C1-->C2(组员2在本地仓库完成任务并commit-push)
    B2-->B3(组员1在中央仓库pull requests请求合并到develop分支)
    C2-->C3(组员2在中央仓库pull requests请求合并到develop分支)
    B3-->A4.1{主管审核}
    C3-->A4.2{主管审核}
    A4.1-->|审核通过|A5.1(主管merge pull requests到develop分支)
    A4.1-->|不通过|A6(结束pull requests)
    A4.2-->|审核通过|A5.2(主管merge pull requests到develop分支)
    A4.2-->|不通过|A6(结束pull requests)
    A5.1-->A7(主管在本地基于develop分支建立Release-1.0.0预发布分支)
    A5.2-->A7(主管在本地基于develop分支建立Release-1.0.0预发布分支)
    A7-->D(测试员pull Release-1.0.0分支到本地仓库并测试)
    D-->D1(测试通过后push Release-1.0.0分支到中央仓库并pull requests请求合并到master分支)
    D1-->A8(主管merge pull requests之后pull master到本地仓库)
    A8-->A9(主管在本地仓库基于master分支创建标签1.0.0-RELEASE并包括标签push到中央仓库)
    

    自己搭建git服务器作为中央仓库

    • 操作系统版本:ubuntu 18.04 x64

    安装git

    apt-get install git
    

    创建git用户组和git用户

    • 用来运行git服务
    groupadd git
    useradd git -g git
    passwd git
    # 然后输入git用户的密码
    

    初始化git仓库

    cd /home/git/
    mkdir repo
    cd repo
    # 设置git仓库名称为XXX
    git init --bare XXX.git
    # 修改git仓库所有者
    # chown -R user:group XXX.git
    chown -R git:git XXX.git
    

    禁用shell登录

    vi /etc/passwd
    # 找到 git:x:1001:1001:,,,:/home/git:/bin/bash 修改为:
    git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
    # git用户可以使用git,但无法通过ssh登录git用户
    

    创建证书登录

    • 创建证书登录,是为了不用每次提交、推送等操作都需要输入密码

    • 服务端

    cd /home/git/
    # 若没有.ssh目录,则执行下列命令
    # mkdir .ssh && chown -R username:groupname .ssh && chmod 700 .ssh
    mkdir .ssh && chown -R git:git .ssh && chmod 700 .ssh
    # 若有.ssh目录,直接执行下列命令
    cd .ssh
    # 创建文件 并 设置文件所属 并 设置权限
    # 命令:touch authorized_keys && chown -R username:usergroup authorized_keys && chmod 600 authorized_keys
    touch authorized_keys && chown -R git:git authorized_keys && chmod 600 authorized_keys
    
    • 打开服务端的RSA认证
    # vim /etc/ssh/sshd_config
    #(找到下面3行并放开,如果没有添加上)
    RSAAuthentication yes     
    PubkeyAuthentication yes     
    AuthorizedKeysFile  .ssh/authorized_keys
    
    • 客户端
    • 需要在windows本地生成一个公钥,打开cmd
    ssh-keygen -t rsa
    

    公钥生成在C:\Users\{USER_NAME}\.ssh\id_rsa.pub
    使用notepad++打开该文件,复制公钥

    • 服务端
    • 在authorzed_keys中粘贴用户公钥,每个公钥一行
    • 使用git命令行工具,可以免密操作,使用乌龟git界面操作,仍然需要输入密码

    相关文章

      网友评论

          本文标题:Git客户端安装使用与服务端搭建

          本文链接:https://www.haomeiwen.com/subject/rshryhtx.html