git基础

前言

git作为一个流行的源管理系统,使得用户可以为内容的开发创建分支。使用分支并且在分支间交换。 具有很强的版本控制功能,可以解决多人协作的问题。提高开发效率。

很早以前就已经对git有所耳闻,今年参考一些资料后总结一些基本的git操作。方便自己以后用到时可以有地方复习。

git 安装

安装直接跳到git官网下载对应操作系统的版本即可。 https://git-scm.com 选择与自己对应的版本下载安装即可。

安装之后打开git bash配置一下username和email

git config --global user.name "你的用户名"
git config --global user.email "你的邮箱"

配置完成后可以使用 git config –list查看配置信息

message

如果还不习惯使用命令行界面,可以下载一个图形界面soursetree来尝试一下,这个类似于githubdesktop 和mysql的图形界面操作。减轻了在命令行界面的操作。 soursetree下载地址:https://www.sourcetreeapp.com 选择适合自己的版本下载安装即可。

git工作流

在开始之前需要先知道git的整个工作流程,大致流程图如下:

fllow

  • 工作区:存放git版本仓库的目录就是工作区。
  • 版本库(本地仓库):在工作区的目录下有一个.git文件,这个不算工作区,而是git的版本库。
  • 暂存区:git的版本库中存储了很多东西,其中最重要的就是暂存区,其中存放还未commit到版本区的内容,有一个重要的指针 HEAD指向最近一次的提交结果。
  • 远程仓库:当本地仓库代码测试无误后,可以将代码push到源程仓库。方便之后管理。在团队协作中使用源程仓库也便于团队开发。

下面将一些git常用指令。
//初始化版本库,选择或者新建一个空目录,在其中出是一个版本库
git init

//添加文件到版本库
git add //将文件从工作区添加到暂存区,从上图也可以看出
git commit -m //将暂存区的修改提交到版本库 -m 后面加上本次提交的提示信息。

//查看仓库状态
git status //通过该命令可以查看工作区当前的修改是否已经提交


//将暂存区的修改回退到上一次提交
git reset HEAD filename

//清空工作区
git checkout 

rollback

工作流程类似于回滚到上一次的提交

//回滚到某一次的提交
git log //获取某一次提交的commit号
git reset --hard + commit号

   //移除某个文件
  git rm filename //移出工作区的文件
git commit -m  "delete file" //将移出文件提交到本地仓库

下面是一个git的工作流:

workingfllow

本地仓库与远程仓库

创建 SSH key: 由于本地仓库和远程仓库是通过ssh来进行通信的,所以需要创建ssh key

ssh-keygen -t rsa -C "youremail@blabla.com" //邮箱为github中注册时使用的邮箱
//创建之后使用如下面命令判断是否连接成功
ssh -T git@github.com

连接成功后就可以在本地仓库和远程仓库进行通信。

git remote add origin +github中新建的仓库地址 //关联本地仓库和远程github仓库
git push -u origin master //将本地内容推到github中
  • 克隆仓库

    git clone +远程仓库SSH //将远程仓库克隆到本地

    修改之后又可以在推到远程仓库 (git push)

    分支管理

    创建新的分支后方便自身在创作时不影响整个团队的流程,当新的分支的功能完成后再merge到master

    //创建新的分支
    git branch featurename
    //显示当前分支
    git branch
    //切换分支
    git checkout featurename
    // 合并分支
    git merge featurename
    //删除分支
    git branch -d featurename

标签管理

标签的作用:在发布时在版本库中加上一个标签,就可以确定当前版本对应的标签,同时创建标签和删除标签比较快。

//查看所有标签
git tag

//创建标签
git tag +name

//指定提交信息
git tag -a name -m "comment"

//删除标签
git tag -d name

//标签发布
git push origin name