一文搞懂GIT

文章目录

  • [1. GiT概述](#1. GiT概述)
    • [1.1 GIT概述](#1.1 GIT概述)
    • [1.2 GIT安装](#1.2 GIT安装)
  • [2. GIT组成](#2. GIT组成)
  • [3. GIT基本命令](#3. GIT基本命令)
    • [3.1 基本命令](#3.1 基本命令)
    • [3.2 分支操作](#3.2 分支操作)
    • [3.3 远程操作](#3.3 远程操作)
    • [3.4 标签操作](#3.4 标签操作)
    • [3.5 其他命令](#3.5 其他命令)

1. GiT概述

1.1 GIT概述

Git 是一个分布式版本控制系统,被广泛应用于软件开发中。

Git 具有众多优点,比如:

  1. 分布式特性:开发人员可以在本地拥有完整的代码库历史,即使离线也能进行大部分操作。
  2. 强大的分支管理:创建、合并和删除分支都非常便捷,且不会影响其他分支的工作。
  3. 高效的协作:多个开发者可以方便地共享和合并彼此的代码更改。

例如,在一个大型团队开发项目中,不同的开发者可以基于 Git 创建自己的特性分支进行开发工作,完成后将分支合并到主分支。而且,如果在开发过程中出现错误,通过 Git 的版本回退功能,可以轻松回到之前的正确版本。

Git 的常用命令包括

git init 用于初始化一个新的代码库

git clone 用于克隆远程代码库

git add用于将更改添加到暂存区

git commit 用于提交更改等等。

1.2 GIT安装

Windows 系统:

访问 Git 官方网站(https://git-scm.com/)。

点击"Download for Windows"下载适合 Windows 的安装程序。

运行安装程序,按照默认设置进行安装,或者根据您的需求自定义安装路径等选项。

Mac 系统:

可以通过两种常见方式安装:

从 Git 官方网站下载安装包进行安装。

使用 Homebrew 命令行工具进行安装,在终端中输入 brew install git 。

Linux 系统(基于 Debian 或 Ubuntu):

在终端中输入以下命令:

bash 复制代码
sudo apt-get update
sudo apt-get install git

安装完成后,您可以在终端中输入 git --version 来验证是否安装成功,并查看安装的 Git 版本。

2. GIT组成

Git 是一个分布式版本控制系统,具有复杂但灵活的组成部分。理解 Git 的组成部分有助于你更好地利用其功能。Git 主要由以下几个核心组成部分构成:

工作区(Working Directory) 这是您直接操作和编辑文件的地方,就是您项目所在的本地目录。

**暂存区(Staging Area,也称为 Index):**工作区中的修改可以通过 git add 命令添加到暂存区,文件的当前状态会被记录到暂存区。当你执行 git commit 时,Git 会将暂存区中的文件快照作为一个新的提交保存到本地仓库。

本地仓库(Local Repository)

本地仓库是你在本地计算机上保存 Git 项目历史记录的地方。它包含了项目的所有版本历史。每次你执行 git commit 时,提交记录会被保存到本地仓库。

本地仓库主要由两个部分组成:

.git 目录:这是 Git 存储项目历史和元数据的地方。它包含了多个重要的子目录和文件:

objects:存储所有的对象(如提交、树、blob 等)。这些对象以 SHA-1 哈希值为名称进行存储。

refs:存储指向提交对象的引用,如分支和标签。常见的子目录包括 heads(本地分支)和 tags(标签)。

HEAD:指向当前检出分支的指针。它记录了当前分支或提交的位置。 config:项目的配置文件,存储有关 Git 仓库的设置,如远程仓库

URL 和分支设置。 description:存储仓库的简短描述(通常用于 GitWeb 等工具)。

远程仓库(Remote Repository):通常位于网络上的服务器上,如 GitHub、GitLab 等。可以通过 git push 将本地的提交推送到远程仓库,实现与其他开发者的代码共享和协作。

提交 (Commit)

提交是 Git 中的核心概念之一。每次你执行 git commit,Git 会将暂存区中的文件快照保存为一个新的提交。每个提交都有一个唯一的 SHA-1 哈希值,用来标识这个提交。提交包含以下信息:

树对象:代表项目的文件和目录结构。

父提交:指向前一个提交的引用(合并提交有多个父提交)。

作者信息:提交者的姓名和邮箱。

提交信息:对提交所做更改的描述。

分支 (Branch)

分支是 Git 中用于并行开发的机制。分支允许你在不影响主线开发的情况下进行实验和开发。常见的分支操作包括:

创建分支:git branch

切换分支:git checkout

合并分支:git merge

标签 (Tag)

标签是 Git 中用于标记特定提交的机制,通常用于标记发布版本或重要的里程碑。标签是一个对提交的引用,标签有两个类型:

轻量标签:简单的指针,类似于分支但不具有版本历史。

注释标签:包含额外的元数据,如标签名称、标签人和标签信息。

合并 (Merge) 和变基 (Rebase)

合并:将一个分支的更改集成到当前分支,通常使用 git merge 命令。

变基:将一个分支的更改重新应用到另一分支的顶部,通常使用 git rebase 命令。变基可以保持提交历史线性,但在处理公共分支时要小心。

3. GIT基本命令

3.1 基本命令

git init: 初始化一个新的 Git 仓库。

git clone 克隆一个远程仓库到本地。

git status 显示当前工作目录和暂存区的状态。

git add 将文件添加到暂存区。

git commit -m "message" 提交暂存区的文件到本地仓库

git log 查看提交历史。

git diff 查看文件修改的差异。

git reset 从暂存区移除文件。

3.2 分支操作

git branch 列出、创建或删除分支。

bash 复制代码
git branch        # 列出本地分支
git branch <name> # 创建新分支
git branch -d <name> # 删除分支

git checkout 切换到指定的分支。

git checkout -b 创建并切换到一个新分支。

git merge 将指定的分支合并到当前分支。

3.3 远程操作

git remote -v 查看远程仓库信息。

git remote add 添加一个新的远程仓库。

git fetch 从远程仓库下载新数据,但不合并。

git pull 从远程仓库拉取数据并合并到当前分支

git push 将本地分支推送到远程仓库。

git push --set-upstream 设置上游分支并推送。

3.4 标签操作

git tag 列出所有标签。

git tag 创建一个新的标签。

git tag -d 删除一个标签。

git push origin 将标签推送到远程仓库。

3.5 其他命令

git stash 暂时保存未提交的更改。

git stash apply 恢复上次存储的更改。

git rebase 将当前分支的提交变基到指定分支上。

git cherry-pick 从一个分支中选择特定的提交并将其应用到当前分支。

git revert 创建一个新的提交以撤销指定的提交。

相关推荐
wang_book6 小时前
Gitlab学习(007 gitlab项目操作)
java·运维·git·学习·spring·gitlab
不是笨小孩i9 小时前
Git常用指令
大数据·git·elasticsearch
救救孩子把9 小时前
mac中git操作账号的删除
git·macos
汀、人工智能11 小时前
报错error: RPC failed,curl 16 Error in the HTTP2 framing layer解决方法
网络·git·网络协议·rpc
Eoneanyna12 小时前
QT设置git仓库
开发语言·git·qt
+码农快讯+12 小时前
Git入门学习(1)
git·学习·elasticsearch
VaporGas16 小时前
idea集成和使用Git指南
java·git·intellij-idea
无名之逆17 小时前
计算机专业的就业方向
java·开发语言·c++·人工智能·git·考研·面试
大广-全栈开发17 小时前
centos 7 安装gitlab
linux·git·centos
zhangphil17 小时前
git删除本地分支报错:error: the branch ‘xxx‘ is not fully merged
git