git的起步必学基础

概述

开发的实际场景

场景一:备份

场景二:代码还原

场景三:协同开发

场景四:追溯代码的编写人和编写时间

版本控制方式

  1. 集中式版本控制工具

版本库是集中存放在中央服务器的,team里每个人work时,都从中央服务器下载代码,是必须联网才能工作。局域网或互联网,个人修改后然后提交到中央版本仓库。

举例:SVN和CVS

  1. 分布式版本控制工具

分布式版本控制系统没有"中央处理器",每个人的电脑都是一个完整的版本库,这样工作的时候无需联网,因为版本库就在自己电脑上,多人协作只需要各自的修改推送给对方,就能互相看到对象的修改了

举例:Git

SVN

Git

Git的工作流程

git的起步必学基础_第1张图片

命令如下:

clone(克隆): 从远程仓库克隆代码到本地仓库

checkout(检出):从本地仓库中检出一个仓库分支然后进行修订

add(添加):在提交前先将代码提交到暂存区

commit(提交): 提交到本地仓库,本地仓库中保存修改的各个历史版本

fetch(抓取):从远程库,抓取到本地仓库,不进行任何的合并,一般操作比较少

pull(拉动):从远程库拉到本地库,自动进行合并(merge),然后放到工作区,相当于fetch+merge

push(推送):修改完后,需要和团队成员共享代码,将代码推送到远程仓库

Git的安装与常用命令

Git的环境配置

下载与地址

Git (git-scm.com)

安装时一直next即可

启动Git

Git Bash: Unix与linux风格的命令行,使用最多,推荐最多

Git CMD: windows风格的命令行

Git GUI: 图形化界面的GUI,不建议初学者使用。

基本的Linux命令
Git的环境配置
  1. 打开Git Bash
  2. 设置用户信息(必须配置)
    1. git config --global user.name "用户名"
    2. git config --global user.email "自己邮箱"
查看配置信息
查看所有配置 git config -l

查看不同级别的配置文件

查看系统config git config --system --list

查看当前用户(global)

配置 git config --global --list
为常用指令配置别名(可选)

有些常用的指令非常多,可以起别名。

        1.打开用户目录,创建.bashrc文件

(部分windows系统不允许用户创建点号开头的文件,可以打开gitBush执行 touch ~/.bashrc)

        2.在.bashrc文件中输入下面内容

#用于输出git提交日志 alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' #用于输出当前目录所有文件及基本信息 alias ll='ls -al'

解决gitBash乱码问题

        3.打开GitBash执行下面命令

git config --global core.quotepath false

        4.${git_home}/etc/bash.bashrc 文件后面最后加入下面两行

export LANG="zh_CN.UTF-8"

export LC_ALL="zy_CN.UTF-8"

获取本地仓库

要使用git对我们的代码进行版本控制,首先需要获得本地仓库

在电脑的任意位置创建一个空目录,作为我们的本地Git仓库

进入这个目录中,打开Git Bash窗口

执行命令 git init

如果创建成功后,可在文件中看到隐藏的.git目录

基础操作指令

Git工作目录(除了git目录都是工作目录)对于文件的修改(增加、删除、更新)会存在几个状态

这些修改的状态会随着我们执行Git的命令而发生变化

git的起步必学基础_第2张图片

主要讲解如何使用命令控制这些状态之间的转换

  1. git add (工作区--> 暂存区)
  2. git commit(暂存区--> 本地仓库)

*查看修改的状态(status)

  • 作用:查看的修改状态
  • 命令形式:git status

*添加工作区到暂存区(add)

  • 作用:添加一个或多个文件的修改到暂存区
  • 命令形式:git add 单个文件名 | 通配符(.)

*提交暂存区到本地仓库(commit)

  • 作用:提交暂存区到本地仓库的当前分支
  • 命令形式:git commit -m "注释内容"

*查看提交日志(log)

  • 作用:查看提交记录
  • 命令形式:git log [option]
    • option
      • --all 显示所有分支
      • --pretty=oneline 将提交信息显示为一行
      • --abbrev-commit 使得输出的commitld更简短
      • --graph 以图的形式显示

版本回溯

  • 作用:版本切换
  • 命令形式:git reset --hard commitID
    • commitID 可以使用git-log 或git log
    • 如何查看已经删除的记录
      • git reflog
      • 这个指令可以看到已经删除的提交记录

添加文件至忽略列表

  • 一般我们总会有些文件无需纳入Git的管理,也不希望他们总出现在为跟踪文件列表。
  • 通常都是些自动生成的文件,比如日志,或者编译过程中的临时文件等。
  • 在这个情况下,我们可以在工作目录中创建一个名为.gitignore的文件(文件名固定),列出要忽略的文件模式
  • 这个文件也要提交

git的起步必学基础_第3张图片

git分支

几乎所有版本控制系统都以某种形式支持分支,使用分支就意味着可以把你的工作从开发主线上分离来进行重大Bug修改,开发新的功能,以免影响开发主线

查看本地分支

命令:git branch

创建本地分支

命令:git branch 分支名

注意:

  • 分支创建好后的提交都是在dev分支上提交,而之前的总提交master分支的提交位置停留在创建从分支dev的位置。而HEAD会跟随新创建的分支,跟随每一次提交不停的先前移动。保持HEAD指针的在提交的最前沿。
  • 在master上新创建的dev分支会继承master分支的所有提交,通过 git log 可以看出来

git的起步必学基础_第4张图片

git的起步必学基础_第5张图片

*切换分支

命令:git checkout 分支名

我们还可以直接切换到一个不存在的分支(创建并切换)

命令:git checkout -b 分支名

*合并分支

一个分支的提交可以合并到另一个分支上

合并到那个分支,就需要先切换到哪个分支上,然后再合并

命令:git merge 分支名称

删除分支

不能删除当前分支,只能删除其他分支

git branch -d 分支名 删除分支时,需要做各种检查

git branch -D 分支名 删除分支时,不做任何检查

解决冲突

当两个分支上的修改可能会存在冲突,例如同时修改同一个文件的同一行,这时候需要手动修改冲突。

解决冲突的步骤:
  1. 处理文件中冲突的地方
  2. 将解决完后的文件加入到暂存区(add)
  3. 提交到仓库
开发中分支使用原则与流程

几乎所有版本控制系统都是以某种形式支持分支,使用分支意味着可以把你的工作从开发主线上分离开,进行重大Bug的修改开发新功能,以免影响主线

在开发过程中,一般有如下使用原则与流程

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

git的起步必学基础_第6张图片

合并的快捷模式

  • 只有两个文件都发生合并才有拱桥格式
  • 否则就是直线

你可能感兴趣的:(springboot,git)