Git 基础

2020/04/22 Git 浏览量 共 2038 字,约 6 分钟

Git 基础知识介绍

1、Git 与 Github 的区别

  • Git 是一个分布式版本控制系统,简单的说其就是一个软件,用于记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的软件。

  • Github(https://www.github.com)是一个为用户提供 Git 服务的网站,简单说就是一个可以放代码的地方(不过可以放的当然不仅是代码)。Github 除了提供管理 Git 的 web 界面外,还提供了订阅、关注、讨论组、在线编辑器等丰富的功能。Github 被称之为全球最大的基友网站。

2、本地仓库

2.1、工作流程

Git 本地操作的三个区域:

  1. 工作区:本地电脑存放项目文件的地方;
  2. 暂存区(Index/Stage):在使用 git 管理项目文件的时候,其本地的项目文件会多出一个 .git 的文件夹,将这个 .git 文件夹称之为版本库。其中 .git 文件夹中包含了两个部分,一个是暂存区(Index/Stage),顾名思义就是暂时存放文件的地方,通常使用 add 命令将工作区的文件添加到暂存区里;
  3. 本地仓库:.git 文件夹里还包括 git 自动创建的 master 分支,并且将HEAD指针指向 master 分支。使用 commit 命令可以将暂存区中的文件添加到本地仓库中;

三个区域

工作流程:

工作流程

2.2、本地仓库操作

仓库又名版本库,英文名 repository ,我们可以简单理解成是一个目录,用于存放代码的,这个目录里面的所有文件都可以被 Git 管理起来,每个文件的修改、删除等操作 Git 都能跟踪到。

① 在安装好后首次使用需要先进行全局配置 桌面空白处右键,点击 Git Bash Here 以打开 Git 命令行窗口

$ git config --global user.name "用户名"
$ git config --global user.email "邮箱地址"

image-20200221193040545

② 创建仓库,创建一个文件夹,进入文件夹内,将git仓库初始化:git init,初始化成功后会在该目录下有 .git 名字的隐藏文件夹

image-20200221193654605

③ Git 常用指令操作

查看当前状态:git status 【非必要】

添加到暂存区:git add 文件名

提交至版本库:git commit -m "注释内容"

# 语法
git add 文件名
git add 文件名1 文件名2 文件名3 …
git add .		      //添加当前目录到缓存区中

在后续对于文件(可以操作 1 个或多个)操作之后,重复使用 git addgit commit 指令即可

image-20200221203621284

2.3、版本回退

版本回退分为两步骤进行操作: ① 查看版本,确定需要回到的时刻点 指令:git loggit log --pretty=oneline

image-20200221204428390

② 回退操作 ​ 指令:git reset --hard 提交编号

image-20200221204702981

③ 查看历史操作,以得到最新的 commit id

指令:git reflog

image-20200221204953023

2.4、忽略文件

忽略文件需要新建一个名为 .gitignore 的文件,该文件用于声明忽略文件或不忽略文件的规则,规则对当前目录及其子目录生效。

PS:该文件因为没有文件名,无法直接在 windows 目录下直接创建,可以通过命令行 Git Bash 来touch创建

常见规则写法有如下几种:

1)/mtk/               过滤整个文件夹
2)*.zip               过滤所有.zip 文件
3)/mtk/do.c           过滤某个具体文件
4) !index.php	       不过滤具体某个文件

3、两种常规使用方式

3.1、基于 http/https 协议

a. 使用 clone 指令克隆线上仓库到本地 语法: git clone 线上仓库地址

image-20200221212548678

b. 在仓库上做对应的操作(提交暂存区、提交本地仓库、提交线上仓库、拉取线上仓库) 将本地仓库同步到 git 远程仓库中:git push

在 push 前需要修改 .git/config 文件内容:

[core]
	repositoryformatversion = 0
	filemode = false
	bare = false
	logallrefupdates = true
	symlinks = false
	ignorecase = true
[remote "origin"]
	url = https://用户名:密码@github.com/用户名/仓库名.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

image-20200221212803927

拉取线上仓库:git pull

image-20200221214620172

3.2、基于 ssh 协议

生成公私玥对指令:ssh-keygen -t rsa -C "注册邮箱"

image-20200221223827885

上传公钥文件内容(id_rsa.pub)到 github 中,clone 远程仓库

image-20200221222922406

# 查看分支
git branch

# 创建分支
git branch 分支名

# 切换分支
git checkout 分支名 

# 删除分支
git branch -d 分支名

# 合并分支
git merge 被合并的分支名

查看、创建分支:

image-20200221225058586

切换分支、合并分支、删除分支:

image-20200221230146089

master 分支提交到远程仓库

image-20200221230327303

4、解决冲突

多人开发同一个项目时,如果两个人修改了同一个文件同一个地方,push 时会发生冲突

解决方式:git pull -> 手动解决冲突 ->git push

Search

    Table of Contents