Git 使用全攻略:从新手小白到团队协作大神

开源 0

Git 使用全攻略:从新手小白到团队协作大神

  • 一、Git介绍
    • 核心概念
    • 工作流程
    • 优势
    • 常用命令
  • 二、Git工作流程详细介绍
    • 四个工作区域
    • 工作流程
  • 三、Git下载与安装
    • 下载64位软件包
    • 安装Git
  • 四、Git基础环境配置
    • 设置用户信息
    • 查看配置信息
  • 五、Git基础
    • 本地初始化仓库
    • 文件的两种状态
    • 文件加入暂存区
    • 文件提交与删除
    • 远程仓库推送、抓取和拉取

一、Git介绍

Git 是一款免费、开源的分布式版本控制系统,由 Linux 的创始人 Linus Torvalds 开发和维护 ,旨在帮助开发者更高效地管理项目的版本,尤其是在多人协作开发的场景中。以下是关于 Git 的详细介绍:

核心概念

  • 仓库(Repository)
    含义:Git 将项目的所有文件和文件夹的集合视为一个仓库,这个仓库包含了项目的整个版本历史记录。
    作用:它就像是一个项目的时光机,开发者可以随时回溯到项目的任何一个历史版本。例如,你正在开发一个软件项目,Git 仓库会记录下项目从创建开始的每一次修改、添加、删除等操作。
  • 提交(Commit)
    含义:是对项目某一时刻状态的一次快照记录,主要包含了此次修改的文件内容以及相关的提交信息,如提交者、提交时间和提交说明等。
    作用:每个提交都有一个唯一的标识符(哈希值),通过这个标识符可以准确地定位到该次提交,便于开发者追踪项目的演进过程和查看具体的修改内容。比如,当你完成了一个新功能的开发并测试通过后,就可以进行一次提交,将当前项目的状态保存下来。
  • 分支(Branch)
    含义:是在原始代码基础上开辟出的一条独立的开发线,每个分支都可以独立地进行开发、提交和修改,相互之间互不干扰。
    作用:它为开发者提供了一种方便的方式来并行开发不同的功能或修复不同的问题。例如,当你需要同时开发一个新功能和修复一个线上的 bug 时,就可以创建两个分支,分别在不同的分支上进行工作,待完成后再将分支合并回主分支。
  • 合并(Merge)
    含义:是将一个分支的修改合并到另一个分支的操作,通常在完成某个功能开发或问题修复后,将相关分支合并回主分支。
    作用:Git 会自动分析两个分支的差异,并尝试将这些差异合理地合并到目标分支中。比如,在新功能分支开发完成并经过测试后,通过合并操作将新功能整合到主分支中,使主分支包含新功能的代码。

工作流程

  • 克隆仓库(Clone):从远程服务器上获取项目的完整副本到本地计算机,使本地拥有与远程仓库相同的项目文件和版本历史记录。
  • 创建或切换分支(Checkout):根据开发需求创建新的分支或切换到已有的分支进行开发工作。
  • 修改和提交(Edit and Commit):在当前分支上对项目文件进行修改和完善,完成后将这些修改提交到本地仓库,保存当前项目的状态。
  • 推送和拉取(Push and Pull):将本地仓库的提交推送到远程服务器上的仓库,以便与团队成员共享;同时也可以从远程仓库拉取最新的提交,保持本地仓库与远程仓库的同步。

优势

  • 分布式版本控制:与传统的集中式版本控制系统不同,Git 的分布式特性使得每个开发者的本地仓库都是一个完整的版本库,包含了项目的所有历史记录。这意味着即使远程服务器出现故障,开发者仍然可以在本地进行版本管理和开发工作,待服务器恢复后再进行同步。
  • 高效的分支管理:Git 提供了强大而灵活的分支管理功能,创建和切换分支的操作非常快速和简便。这使得开发者可以轻松地同时开展多个任务,并且在不同分支之间切换时几乎没有性能开销。
  • 数据完整性和安全性:Git 使用哈希算法来确保数据的完整性,每个提交都有一个唯一的哈希值,只要提交的内容发生任何变化,哈希值就会不同。这使得 Git 能够准确地检测到数据的篡改和错误,保证了项目版本的安全性和可靠性。
  • 强大的协作支持:Git 支持多人协作开发,团队成员可以方便地共享代码、提交和推送各自的修改,并通过拉取操作获取最新的代码。同时,Git 还提供了各种工具和命令来解决合并冲突等协作中常见的问题。

常用命令

  • 基础命令
    git init:在当前目录下创建一个新的 Git 仓库,将该目录初始化为 Git 可以管理的版本库。
    git add [file1] [file2]... 或 git add.:将指定的文件或当前目录下所有修改和新增的文件添加到暂存区,准备进行提交。
    git commit -m "commit message"将暂存区的文件提交到本地仓库,并附上提交说明,以便清晰地记录本次提交的内容和目的。
  • 分支管理命令
    git branch列出本地仓库中所有的分支,当前所在分支会以星号(*)标识。
    git branch [branch_name]创建一个新的分支,分支名称为 branch_name。
    git checkout [branch_name]切换到指定的分支 branch_name 进行开发工作。
  • 远程仓库操作命令
    git remote add origin [remote_url]将本地仓库与远程仓库进行关联,其中 origin 是远程仓库的别名,remote_url 是远程仓库的地址。
    git push origin [branch_name]将本地分支 branch_name 的提交推送到远程仓库 origin 上对应的分支。
    git pull origin [branch_name]:从远程仓库 origin 上拉取指定分支 branch_name 的最新提交,并自动合并到本地当前分支。

二、Git工作流程详细介绍

在这里插入图片描述

四个工作区域

在这里插入图片描述

  • Workspace: 工作区,就是你平时存放项目代码的地方
  • Index / Stage: 暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository: 仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote: 远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换
    在这里插入图片描述

工作流程

Git的工作流程一般是这样的:

  1. 在工作目录中添加、修改文件;
  2. 将需要进行版本管理的文件放入暂存区域;
  3. 将暂存区域的文件提交到git仓库。

三、Git下载与安装

在这里插入图片描述

git官网

下载64位软件包

在这里插入图片描述

安装Git

在这里插入图片描述

四、Git基础环境配置

在这里插入图片描述

设置用户信息

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。

git config --global user.name "gongfuxiongmao"git config --global user.email "gongfuxiongmao@163.com"

查看配置信息

检查当前的配置

git config --listgit config user.name

注意:
通过上面的命令设置的信息会保存在~/.gitconfig文件中。

五、Git基础

本地初始化仓库

mkdir tmp  #创建tmp目录git init   #初始化这个目录让Git对这个目录开始进行版本控制。

小提示:
git init 命令会在上述目录中创建一个名为 .git 的隐藏目录,并在其中创建一个版本库。该目录为文件,查看->显示隐藏目录。

文件的两种状态

  1. untracked未跟踪
    未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
  2. tracked已跟踪
    被纳入版本控制
    Unmodified
    文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified,如果使用git rm移出版本库, 则成为Untracked文件。
    Modified
    文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过,返回unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改。
    Staged
    暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存,文件状态为Modified。

注意:
这些文件的状态会随着我们执行Git的命令发生变化
在这里插入图片描述
注意:
新建文件—>Untracked
使用add命令将新建的文件加入到暂存区—>Staged
使用commit命令将暂存区的文件提交到本地仓库—>Unmodified
如果对Unmodified状态的文件进行修改—> modified
如果对Unmodified状态的文件进行remove操作—>Untracked

文件加入暂存区

在这里插入图片描述
文件加入暂存区命令

语法结构

git add 文件名

文件取消暂存区命令

语法结构

git reset 文件名

文件提交与删除

如果仅是通过git add命令把移动加到暂存区,还不算是完成整个流程。如果想让暂存区的内容永久保存下来,就要使用git commit命令。
在这里插入图片描述
文件提交命令

语法结构:

git commit -m "提交信息"

参数:
-m : 本次提交做了什么事,只要简单、清楚的文本说明即可,中英文都可以重点是说清楚,能让自己和别人很快明白就行。
如果不加m参数,会进入类似vim编辑

远程仓库推送、抓取和拉取

Git远程仓库_推送

当你想分享你的代码时,可以将其推送到远程仓库。
语法结构:

git push [remote-name][branch-name]

从远程仓库中抓取与拉取

语法结构:

git fetch

注意:
git fetch是从远程仓库获取最新版本到本地仓库,不会自动merge,想看见文件就需要手动进行合并文件 git merge origin/master 。

从远程仓库中抓取与拉取

语法结构:

git pull

注意:
git pull是从远程仓库获取最新版本到本地仓库,会自动merge

也许您对下面的内容还感兴趣: