书生大模型实战营3

文章目录

L0------入门岛

git基础

Git 是什么?

在了解Git是什么之前,我们想要知道我们平时是怎么跟他人合作开发的?我们最传统的策略就是打包压缩然后发送给对方,然后通过上传到网盘或者上传到QQ,又或者通过邮箱传输。

但是这样的方式存在很多问题,比如:

效率低下,每次都需要压缩,上传,下载,还要考虑网络问题。

无法追踪历史,无法追踪修改,无法追踪谁做了什么修改。

无法协作开发,无法多人同时开发。

这时我们就需要能解决以上问题的一个工具而且他需要满足以下的功能:

支持多人同时开发, 保证高效有序

有一个网络平台能帮我们同步工程开发进度

差分增量式更新工程代码, 减少上传下载流量

支持历史追踪的版本管理, 便于回溯。

这些工具有:CVS, SVN, GIT 等等。

其中Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git的诞生离不开Linux社区的努力,它是开源的,而且是免费的。它支持多种操作系统,包括 Linux、Unix、Mac OS X、Windows。

Git 中的一些基本概念

工作区、暂存区和 Git 仓库区

工作区(Working Directory): 当我们在本地创建一个 Git 项目,或者从 GitHub 上 clone 代码到本地后,项目所在的这个目录就是"工作区"。这里是我们对项目文件进行编辑和使用的地方。

暂存区(Staging Area): 暂存区是 Git 中独有的一个概念,位于 .git 目录中的一个索引文件,记录了下一次提交时将要存入仓库区的文件列表信息。使用 git add 指令可以将工作区的改动放入暂存区。

仓库区 / 本地仓库(Repository): 在项目目录中,.git 隐藏目录不属于工作区,而是 Git 的版本仓库。这个仓库区包含了所有历史版本的完整信息,是 Git 项目的"本体"。

文件状态

文件在 Git 工作区中的状态可以是:

已跟踪:文件已被纳入版本控制,根据其是否被修改,可以进一步分为未修改(Unmodified)、已修改(Modified)或已暂存(Staged)。

未跟踪:文件存在于工作目录中,但还没被纳入版本控制,也未处于暂存状态。

分支

分支是 Git 的一大特性,支持轻量级的分支创建和切换。Git 鼓励频繁使用分支和合并,使得并行开发和错误修正更为高效。

主要功能
  • 代码历史记录跟踪

Git 记录每一次代码提交,允许用户查看项目的历史版本和变更记录,从而理解每个阶段的开发细节。

  • 团队协作

支持多人同时对同一项目工作,提供了合并、分支和版本控制的功能,以确保多人协作的效率和代码的整合性。

  • 变更审查

允许开发者查看代码变更的具体内容,了解谁在何时做了哪些修改,这对于代码审查和质量控制至关重要。

  • 实现机制

Git 平台介绍

GitHub

是全球最大的代码托管平台之一,拥有丰富的开源项目和活跃的开发者社区。它提供了版本控制、项目管理、协作开发等功能,并支持多种编程语言。

GitLab

一个自托管或基于云的平台,提供了完整的 DevOps 工具链,包括代码托管、持续集成/持续部署(CI/CD)、问题跟踪等。

Gitee

国内的代码托管平台,提供了代码托管、项目管理、协作开发等功能,对国内开发者来说,访问速度可能更快,也更符合国内的使用习惯。

Git 下载配置验证

下载 Git
  • Windows

下载并安装适合您 Windows 版本的安装程序:下载地址

按照安装向导完成安装。(默认设置安装即可)

打开终端(win+r→cmd),输入指令 git --version 检查是否安装成功。

  • Linux

打开终端,输入指令

shell 复制代码
sudo apt-get install git #安装 Git。
sudo apt-get update
sudo apt-get upgrade

输入指令 git --version 检查是否安装成功。

配置 Git

全局设置于本地设置的区别:

  • 全局设置 (要是私人电脑可以直接用全局设置)

打开终端或命令提示符,并输入以下命令来设置全局用户名和电子邮件地址:

shell 复制代码
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

这里的 "Your Name" 和 "your.email@example.com" 应替换为你自己的姓名和电子邮件。

  • 本地设置

首先,确保你当前处于你想要配置的 Git 仓库的目录中。然后,输入以下命令来仅为该仓库设置用户名和电子邮件地址:

shell 复制代码
git config --local user.name "Your Name"
git config --local user.email "your.email@example.com"

同样,替换 "Your Name" 和 "your.email@example.com" 为该特定项目中使用的姓名和电子邮件。

验证 Git配置

验证这些设置以确保它们被正确应用。

查看全局配置:

git config --global --list

查看仓库配置:

git config --local --list

永久保存信息至本地:

shell 复制代码
#来设置 Git自动记录密码(token),从而无需在每次 pull 或 push 时输入# 注意:信息会以明文存储在本地,需考虑安全性
git config --global credential.helper store

查看特定配置项:

git config user.name

git config user.email

Git常用操作

Git简易入门四部曲

在Git入门当中我们只需要明白一下常用四个指令,即可轻松玩耍

对这四个指令我们可以称为 "Git 经典四步曲"

在Git的日常使用中,下面四步曲是常用的流程,尤其是在团队协作环境中。

  • 添(Add)

命令:git add <文件名> 或 git add .

作用:将修改过的文件添加到本地暂存区(Staging Area)。这一步是准备阶段,你可以选择性地添加文件,决定哪些修改应该被包括在即将进行的提交中。

  • 提(Commit)

命令:git commit -m '描述信息'

作用:将暂存区中的更改提交到本地仓库。这一步是将你的更改正式记录下来,每次提交都应附带一个清晰的描述信息,说明这次提交的目的或所解决的问题。

  • 拉(Pull)

命令:git pull

作用:从远程仓库拉取最新的内容到本地仓库,并自动尝试合并到当前分支。这一步是同步的重要环节,确保你的工作基于最新的项目状态进行。在多人协作中,定期拉取可以避免将来的合并冲突。

  • 推(Push)

命令:git push

作用:将本地仓库的更改推送到远程仓库。这一步是共享你的工作成果,让团队成员看到你的贡献。

帮助团队成员有效地管理和同步代码,避免工作冲突,确保项目的顺利进行。正确地使用这些命令可以极大地提高开发效率和协作质量。

Git其他指令


每个指令都有其特定的用途和场景,详细的使用方法和参数可以通过命令行的帮助文档(git command -h,例如 git pull -h)来获取更多信息。

闯关任务

任务1: 破冰活动:自我介绍
  • 进入原项目

  • 对该项目进行fork

  • 克隆项目到执行机

  • 切换到 class 分支下

  • 创建新的分支

  • 创建自己的介绍文件

    进入到icamp4目录下,新建以自己uid命名的md文件。

  • 提交更改分支

  • 推送分支到远程仓库
  • 检查提交内容
    如图所示,可以看到你的分支已经被推送到远程仓库。

    点击右上角Compare & pull request
任务2: 创建并提交一个项目
  • 创建项目

    在执行机新建目录,和git名称相同
shell 复制代码
git init # 执行git初始化 

git remote add origin git@github.com:ZhangTommy/TestRes.git # 创建执行机本地仓库和远程仓库的对应关系 

新建一个文件,并添加、提交最终推送到远程仓库。

远程仓库效果如下

相关推荐
乱世刀疤16 分钟前
AI绘画软件Stable Diffusion详解教程(6):文生图、提示词细说与绘图案例
人工智能·ai作画·stable diffusion
小白教程18 分钟前
python3.13安装教程(附安装包),【2025】python3.13安装图文教程
python·python3.13安装教程·python3.13安装步骤·python3.13安装流程·python3.13安装·python3.13安装指南·python3.13图文教程
AAA小肥杨25 分钟前
深度解析 | 2025 AI新突破,物理信息神经网络(PINN):Nature级顶刊的「科研加速器」,70份源码论文速取!
人工智能·深度学习·神经网络·pinn
Data-Miner29 分钟前
112页精品PPT | DeepSeek行业应用实践报告
人工智能·ai·数字化
dundunmm44 分钟前
【数据挖掘]Ndarray数组的创建
python·机器学习·数据挖掘·numpy
Loving_enjoy1 小时前
DeepSeek、Grok与ChatGPT:AI三巨头的技术博弈与场景革命
人工智能
windwant1 小时前
神经网络:AI的网络神经
网络·人工智能·神经网络
Only*1 小时前
conda虚拟环境中如何查看包的位置
python·conda·pip
平凡而伟大(心之所向)1 小时前
一文讲清楚自我学习和深度学习
人工智能·深度学习·机器学习