Git在项目中的应用

本文介绍Git在项目中常见用法以及分支管理策略。

什么是git

  • 官网及命令行下载地址

    https://git-scm.com/

  • git 的 GUI 客户端

    Tortoise Git、SourceTree、SmartGit、GitHub Desktop

git 基本应用

  1. 修改全局或单个代码库用户名、邮箱

    git config --global user.name "Your Name"
    git config --global user.email "[email protected]"
    
  2. 集中库、私有库、本地库

  3. 本地库的一些概念

    Workspace: 工作区,就是你平时存放项目代码的地方

    Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息

    Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本

    Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换


  1. 增加远程仓库

    git remote add {origin} {url}   # 添加一个远程仓库,origin为远程仓库的名字,url为远程仓库地址
    
  2. git fetch、git pull

    git fetch 为从远程仓库获取更新但不应用到当前工作区

    git pull 为从远程仓库获取更新并应用到当前工作区,可能会出现合并或冲突

  3. 提交代码的流程

    # 查看git暂存区状态
    git status
    
    # 提交代码到暂存区
    git add {fileName}  # fileName 可以是多个,也可以是通配符,比如*
    
    # 将暂存区提交到仓库区
    git commit -m {message}  # git 强制提交文件必须填写提交说明
    
    # 将仓库区的修改推送到远程仓库
    git push -u origin master # 推送本地分支到远程仓库
    
  4. git stash

    stash类似于一个栈结构

    git stash # 将当前工作区中对已加入仓库区的文件的修改存储到stash区(贮藏)
    
    git stash pop # 将stash区最顶层存储的改动应用到工作区
    

git 分支

  1. 查看仓库分支
git branch     # 查看本地库分支

git branch -a  # 查看所有分支
  1. 创建分支

    git branch -b dev # 基于当前分支创建新的分支并切换分支
    
    git branch dev    # 基于当前分支创建新的分支
    git checkout dev  # 切换分支
    
  2. 合并分支

    # 将dev分支合并到当前分支,
    # 其中 no-ff 表示如果当前分支在dev分支之前且没有过其他提交,则依然创建一个合并的提交
    git merge --no-ff -m {message} dev  
    
  3. git rebase

    执行rebase前分支如下

              A---B---C topic
             /
        D---E---F---G master
    

    执行rebase

    git rebase master
    git rebase master topic
    
                      A'--B'--C' topic
                     /
        D---E---F---G master
    

git 高级应用

  • git cherry-pick 摘取(遴选)其他分支的提交到当前工作分支上
  • git patch 将某几次提交做成补丁包,可以应用到其他的仓库上
  • git gc - 清理不必要的文件并优化本地存储库
  • git prune 清理object目录下无法到达的项目(即未被hash引用的文件)
  • git tag 对某一个提交点进行打标签,方便以后快速定位到该提交点

git 的几种工作流

  • Centralized Workflow
  • Feature Branch Workflow

    开始一个新的特性开发


    完成特性开发,合并到源分支

  • Gitflow Workflow

    1. 开发分支


    2. (feature branch)特性分支


    3. (release branch)发布分支


    4. (hotfix branch)补丁分支

    04%20(1).png
  • Forking Workflow

参考资料

  • git官网
  • Pro Git
  • Bitbucket
  • 廖雪峰

你可能感兴趣的:(Git在项目中的应用)