Git基础篇

Git是开源的分布式版本控制系统,能够说是开发人员必备了,每一个程序员都应该掌握。这里主要讲Git的安装与配置,工做区、暂存区、版本库的概念以及经常使用的一些命令。git

Linux下Git的安装与配置

Ubuntu下能够运行如下命令安装:sudo apt install git,安装成功后可查看Git版本:git --version程序员

Git配置

Git 提供了一个叫作 git config 的工具,专门用来配置或读取相应的工做环境变量。缓存

这些环境变量,决定了Git 在各个环节的具体工做方式和行为。这些变量能够存放在如下三个不一样的地方:bash

  • /etc/gitconfig文件:系统中对全部用户都广泛适用的配置。若使用 git config 时用“--system”选项,读写的就是这个文件。可以使用git config -e --system对配置文件进行配置。
  • ~/.gitconfig文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用“--global”选项,读写的就是这个文件。可以使用git config -e --global对配置文件进行配置。
  • 当前项目的 Git 目录中的配置文件(也就是工做目录中的 .git/config 文件):这里的配置仅仅针对当前项目有效。每个级别的配置都会覆盖上层的相同配置,因此 .git/config 里的配置会覆盖 /etc/gitconfig中的同名变量。可进入对应项目目录使用git config -e对配置文件进行配置。

(Git的配置文件是INI格式的)分布式

配置用户信息

开始前,须要先配置用户名和邮件地址:工具

git config --global user.name "your name"
git config --global user.email your_email
复制代码

若是用了 --global 选项,那么更改的配置文件就是位于你用户主目录下的那个,之后你全部的项目都会默认使用这里配置的用户信息。若是要在某个特定的项目中使用其余名字或者电邮,只要去掉 --global 选项从新配置便可,新的设定保存在当前项目的 .git/config 文件里。url

查看已有的配置信息:git config --listspa

Git基本概念(工做区、暂存区、版本库)

理解Git是怎么工做的,主要是要理解工做区、暂存区、版本库这三个概念。3d

  • 工做区:就是你在电脑里能看到的目录。
  • 暂存区:英文叫stage, 或index。通常存放在 ".git目录下" 下的index文件(.git/index)中,因此咱们把暂存区有时也叫做索引(index)。
  • 版本库:工做区有一个隐藏目录.git,这个不算工做区,而是Git的版本库。

下面这个图展现了工做区、版本库中的暂存区和版本库之间的关系: 版本控制

这里写图片描述

工做区-->暂存区 当对工做区修改(或新增)的文件执行 "git add" 命令时,暂存区的目录树被更新,同时工做区修改(或新增)的文件内容被写入到对象库中的一个新的对象中,而该对象的ID被记录在暂存区的文件索引中。

暂存区-->版本库 当执行提交操做(git commit)时,暂存区的目录树写到版本库(对象库)中,master 分支会作相应的更新。即 master 指向的目录树就是提交时暂存区的目录树(这句话相对绕口一些,这里以master分支为例)。

Git经常使用命令

建立仓库
  • git init:使用当前目录做为Git仓库
  • git init <directory>:使用指定目录做为Git仓库
git clone
  • git clone <repertory-url>:克隆仓库
  • git clone <repertory-url> <directory>:克隆到指定目录
git diff
  • git diff:查看工做区的最新改动,即工做区与提交暂存区的差别
  • git diff --cached:查看已缓存的改动,即提交暂存区与版本库中的差别
  • git diff HEAD:查看工做区与HEAD(当前工做分支)的差别
  • git diff --stat:显示摘要而非整个 diff:

HEAD :表明版本库中最近一次提交
^ :指代父提交
HEAD^:表明当前提交的上一次提交
HEAD^^:以此类推......

git reset
  • git reset --hard HEAD^:回退到上一次提交。完全撤销最近的提交,工做区和暂存区都回退到上一次提交的状态。
  • git reset --hard <commit>:回退到指定提交

git reset --hard参数会进行完全回退,工做区、暂存区、版本库内容一致,即回退到指定commit的那个状态

查看项目的分支们(包括本地和远程)
  • git branch -a
删除本地分支与远程分支
  • git branch -d <BranchName>: 删除本地分支
  • git push origin --delete <BranchName>: 删除远程分支
其余命令
  • git add:文件添加到缓存
  • git add .:添加项目的全部文件
  • git status:查看当前状态
  • git commit -m"注释":将缓存区内容添加到仓库

参考:
Git官网
Git Book

相关文章
相关标签/搜索