Git使用方法 | 青训营笔记

90 阅读3分钟

这是我参加"第四届青训营"笔记创作活动的第8天

1. Git工作流程及安装配置

1.1 工作流程

SVN是集中式版本控制的代表(现在过时了)。

Git是分布式的,不需要有中心服务器。

一些基本的Linux命令:

  • ls/ll 查看当前目录
  • cat 查看文件内容
  • touch 创建文件

1.2 安装配置Git

1.安装

2.基本配置

  • 打开Git Bash

  • 设置用户信息

    • git config --global user.name 'yourname'
    • git config --global user.email 'youremail'
  • 查看配置信息

    • git config --global user.name
    • git config --global user.email

2. Git使用

git bash中选中会自动复制,按下鼠标滚轮则会自动粘贴,不要使用Ctrl+c/v来进行复制粘贴。

2.1 基础命令

  1. 创建文件$ touch 文件名
  2. 查看状态$ git status
  3. 缓存跟踪$ git add .(工作区——>暂存区)
  4. 提交$ git commit -m '注释'(暂存区——>本地仓库)
  5. 查看日志$ git log [options]
  • options

    • --all 显示所有分支
    • --pretty=oneline 将提交信息显示为一行
    • --abbrev-commit 使得输出的commitId更简短
    • --graph 以图的形式展示
  1. 版本回退$git reset --hard commitID

    • commitID可以使用git-log(精简形式查看)或者git log指令查看
  2. 查看已经删除的记录$ git reflog,这个指令可以查看已经删除的提交记录

2.2 常用指令(分支)

  1. 拉取分支上的代码git clone -b 分支名 仓库地址
  2. 查看本地分支git branch
  3. 创建本地分支git branch 分支名
  4. 切换分支git checkout 分支名
  5. 创建并切换分支git checkout -b 分支名
  6. 合并分支git merge 分支名称
  • 一般都是将其他的分支合并到master上

    • 首先先切换到master分支上
    • 然后在执行命令git merge 想要合并的分支名称
  1. 删除分支
  • 删除分支时,需要做各种检查

    • git branch -d 分支名
  • 删除分支时,不做任何检查,强制删除

    • git branch -D 分支名
  1. 解决冲突

当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解决冲突,解决冲突步骤如下:

  • 处理文件中冲突的地方
  • 将解决完冲突的文件加入暂存区(add)
  • 提交到仓库(commit)

2.3 分支使用流程

  1. master(生产)分支
    线上分支,主分支,中小规模项目作为线上运行的应用对应的分支
  2. develop(开发)分支
    是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要合并到master分支准备上线。
  3. feature/xxxx分支
    从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完成后合并到develop分支。
  4. hotfix/xxxx分支
    从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、develop分支,
  5. 其他分支
    例如test分支(用于代码测试)、pre分支(预上线分支)等等。

feature/xxxx分支要合并在develop分支上,一般合并之后要将feature/xxxx分支删掉,项目要上线的时候再将develop分支合并到master上,develop分支不能删哦!

2.4远程仓库操作

  1. 添加git remote add origin 仓库地址

  2. 推送git push origin master

  3. 抓取git fetch [remote name] [branch name]

    • 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
    • 如果不指定远端名称和分支名,则抓取所有分支
  4. 拉取git pull [remote name] [branch name]

    • 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
    • 如果不指定远端名称和分支名,则抓取所有并更新当前分支
  5. 查看本地分支与远程分支的关联关系git branch -vv

  6. 克隆git clone 仓库地址