01-GIt

1. Git基础

1.1 什么是版本管理

版本管理是一种记录文件变化的方式,以便将来查阅特定版本的文件内容。

1.2 Git 简史

这是一个传奇故事,时间定格到2005年,当时linux再使用一个叫做BitKeeper的版本控制工具,BitKeeper开发商在这一年决定不再免费提供给linux社区使用,之后, linux花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!Git也由此诞生了。

在 Git 中的绝大多数操作都只需要访问本地文件和资源,一般不需要来自网络上其它计算机的信息。Git不需外连到服务器去获取历史, 这也意味着你离线,几乎可以进行任何操作。

Git是一个版本控制工具系统,它可以在任何时间点,将文档的状态作为更新记录保存起来,也可以在任何时间点,将更新记录恢复回来。有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出最后是谁修改了哪个地方,又是谁在何时报告了某个功能缺陷等等。

1.3 Git 安装

官网地址

在安装的过程中,所有选项使用默认值即可。

1.4 Git 基本工作流程

Git 有三种状态,你的文件可能处于其中之一:已提交(committed)、已修改(modified)和已暂存(staged)。 已提交表示数据已经安全的保存在本地数据库中。 已修改表示修改了文件,但还没保存到数据库中。 已暂存表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。

由此引入 Git 项目的三个工作区域的概念:工作目录,暂存区域,Git 仓库。

工作目录 暂存区 git仓库
被Git管理的项目目录 临时存放被修改文件 用于存放提交记录

1.5 Git 的使用

Git 有多种使用方式。 你可以使用原生的命令行模式,也可以使用 GUI 模式,这些 GUI 软件也能提供多种功能。 我们将使用命令行模式。

  • Windows 用户,命令窗口(Command Prompt)或 PowerShell。

  • Mac 用户,使用终端(Terminal);

1.5.1 Git 使用前配置

如果系统上安装了 Git,下面就要来定制你的 Git 环境。 每台计算机上只需要配置一次,程序升级时会保留配置信息。 你可以在任何时候再次通过运行命令来修改它们。

Git 自带一个 git config 的工具来帮助设置控制 Git 外观和行为的配置变量。

在使用 Git 前,需要告诉 Git 你是谁,在向 Git 仓库中提交时需要用到。

  1. 配置提交人姓名:git config --global user.name 提交人姓名

  2. 配置提交人邮箱:git config --global user.email 提交人邮箱

  3. 查看git配置信息:git config --list

  4. 删除git配置用户信息:git config --global --unset 错误信息

注意

  1. 如果要对配置信息进行修改,重复上述命令即可。

  2. 配置只需要执行一次。

  3. git help 查看帮助信息

1.5.2 提交步骤
  1. git init 初始化git仓库

  2. git status 查看文件状态

    git status -s (以简介的形式输出)

  3. git add 文件列表 追踪(添加到暂存区)文件 再次git status 查看文件状态

  4. git commit -m 提交信息 向仓库中提交代码

    git commit –a 直接提交省略add的步骤

  5. git log 查看提交记录

    注意:将工作目录中的文件全部添加到暂存区:git add .

多学一招:

git bash 窗口:clear

DOS窗口命令清屏:cls

DOS窗口上下箭头:可以选择之前的输入信息

1.5.3 撤销
  • 用暂存区中的文件覆盖工作目录中的文件: git checkout 文件名

  • 将文件从暂存区中删除git: git rm --cached 文件名

  • 从工作目录中删除文件并暂存删除操作: git rm 文件名(必须是commit的文件,目前在暂存区没有任何修改)

  • 将 git 仓库中指定的更新记录恢复出来,并且覆盖暂存区和工作目录(git log查看commitID):

    git reset --hard commitID

2. Git进阶

2.1 分支

为了便于理解,大家暂时可以认为分支就是当前工作目录中代码的一份副本。

使用分支,可以让我们从开发主线上分离出来,以免影响开发主线。

2.1.1 分支细分
  1. 主分支(master):第一次向 git 仓库中提交更新记录时自动产生的一个分支。

  1. 、开发分支(develop):作为开发的分支,基于 master 分支创建。

  2. 功能分支(feature):作为开发具体功能的分支,基于开发分支创建

功能分支 -> 开发分支 -> 主分支

2.1.2 分支命令
  • git branch 查看分支

  • git branch 分支名称 创建分支

  • git checkout 分支名称 切换分支(切换分支前分支上的文件必须得提交,才可以切换分支)

  • git merge 来源分支 合并分支(提交,切换到主分支上进行合并)

  • git branch -d 分支名称 删除分支(分支被合并后才允许删除)(-D 强制删除)

2.2 暂时保存更改

在git中,可以暂时提取分支上所有的改动并存储,让开发人员得到一个干净的工作副本,临时转向其他工作。

使用场景:分支临时切换

  • 存储临时改动(添加到暂存区,然后再保存临时改动):git stash

  • 恢复改动:git stash pop

3. Github(Gitee)

在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会需要设置一个远程仓库。

只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。

3.1 注册

  1. 访问github首页,点击 Sign up 连接。(注册)

  2. 填写用户名、邮箱地址、GitHub登陆密码

  3. 选择计划

  4. 填写 GitHub 问题

  5. 验证邮箱

  6. GitHub 个人中心

3.2 多人协作开发流程

  • A在自己的计算机中创建本地仓库

  • A在github中创建远程仓库

  • A将本地仓库推送到远程仓库

  • B克隆远程仓库到本地进行开发

  • B将本地仓库中开发的内容推送到远程仓库

  • A将远程仓库中的最新内容拉去到本地

3.3 创建仓库

  1. 填写仓库基本信息

  2. 将本地仓库推送到远程仓库

    1. git push 远程仓库地址 分支名称

    2. git remote add 远程仓库地址别名 远程仓库地址

    3. git push 远程仓库地址别名 分支名称

3.4 拉取操作

3.4.1 克隆仓库

克隆远端数据仓库到本地:git clone 仓库地址 不需要身份认证

3.4.2 拉取远程仓库中最新的版本

拉取远程仓库中最新的版本:git pull 远程仓库地址 分支名称 读操作不需要身份认证

3.5 解决冲突

在多人同时开发一个项目时,如果两个人修改了同一个文件的同一个地方,就会发生冲突。冲突需要人为解决。

git rebase(把多次提交的记录,合并成一个,进行提交)

3.6 ssh免登陆

1.在gitbush命令下命令-生成秘钥:ssh-keygen

2.秘钥存储目录:C:\Users\用户\.ssh

3.公钥名称:id_rsa.pub

4.私钥名称:id_rsa

注意:提交时使用ssh地址提交,第一次要输入yes

3.7 GIT忽略清单

将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。

git忽略清单文件名称:.gitignore

  • 在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。

  • 输入 touch .gitignore 在文件夹就生成了一个“.gitignore”文件。

3.8 GIT提交空目录

提交空文件结构(在根目录运行): touch .gitignore

4. vscode配置git

  • ctrl+shift+p 打开命令窗口

  • 使用git clone命令 添加项目连接打开在工作目录,下载项目

  • 修改项目后,修改文件添加到暂存更改

  • 点击提交已暂存文件按钮,在命令窗口填写提交记录信息,按下回车提交

  • 提交时弹出配置用户名信息(或在终端配置git的用户名和邮箱),填写即可

  • 点击推送按钮或者直接点击同步按钮即可

相关推荐

  1. <span style='color:red;'>01</span>-<span style='color:red;'>GIt</span>

    01-GIt

    2024-06-18 22:08:02      5 阅读
  2. <span style='color:red;'>02</span>_<span style='color:red;'>Git</span>

    02_Git

    2024-06-18 22:08:02      18 阅读
  3. gin:01-框架安装

    2024-06-18 22:08:02       7 阅读
  4. Git012-Git 仓库初始化

    2024-06-18 22:08:02       14 阅读
  5. 01.Git分布式版本控制工具

    2024-06-18 22:08:02       30 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-18 22:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-18 22:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-18 22:08:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-18 22:08:02       20 阅读

热门阅读

  1. 部署YUM仓库及NFS共享服务

    2024-06-18 22:08:02       5 阅读
  2. Linux CFS 调度器 (1):概述

    2024-06-18 22:08:02       10 阅读
  3. 语言中 函数用地址传参的好处

    2024-06-18 22:08:02       10 阅读
  4. CSS中几种常用的清除浮动的方法

    2024-06-18 22:08:02       6 阅读
  5. BootStrap

    2024-06-18 22:08:02       6 阅读
  6. 我与华为的缘分

    2024-06-18 22:08:02       7 阅读
  7. 系统架构师面试题

    2024-06-18 22:08:02       9 阅读