Git 基础知识 - 第四期书生大模型实战营

一、Git的基础知识

1.1 Git是什么?

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

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

  • 效率低下,每次都需要压缩,上传,下载,还要考虑网络问题。
  • 无法追踪历史,无法追踪修改,无法追踪谁做了什么修改。
  • 无法协作开发,无法多人同时开发。

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

  • 支持多人同时开发, 保证高效有序
  • 有一个网络平台能帮我们同步工程开发进度
  • 差分增量式更新工程代码, 减少上传下载流量
  • 支持历史追踪的版本管理, 便于回溯

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

1.2 Git基本概念

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

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

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

1.2.2 文件状态

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

  • 已跟踪:文件已被纳入版本控制,根据其是否被修改,可以进一步分为未修改(Unmodified)、已修改(Modified)或已暂存(Staged)。
  • 未跟踪:文件存在于工作目录中,但还没被纳入版本控制,也未处于暂存状态。
    在这里插入图片描述
1.2.3 分支

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

1.2.4 主要功能
  • 代码历史记录跟踪
    Git 记录每一次代码提交,允许用户查看项目的历史版本和变更记录,从而理解每个阶段的开发细节。
  • 团队协作
    支持多人同时对同一项目工作,提供了合并、分支和版本控制的功能,以确保多人协作的效率和代码的整合性。
  • 变更审查
    允许开发者查看代码变更的具体内容,了解谁在何时做了哪些修改,这对于代码审查和质量控制至关重要。
  • 实现机制
    在这里插入图片描述

1.3 Git平台的介绍

1.3.1 Github

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

1.3.2 Gitlab

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

1.3.3 Gitee

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

1.4 Git 下载配置验证

1.4.1 下载 Git

Windows

  • 下载并安装适合您 Windows 版本的安装程序:下载地址
  • 按照安装向导完成安装。(默认设置安装即可)
  • 打开终端(win+r→cmd),输入指令 git --version 检查是否安装成功。

Linux

  • 打开终端,输入指令

sudo apt-get install git #安装 Git。
sudo apt-get update
sudo apt-get upgrade
  • 输入指令 git --version 检查是否安装成功。
1.4.2 配置Git

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

  • 全局设置:这些设置影响你在该系统上所有没有明确指定其他用户名和电子邮件的 Git 仓库。这是设置默认用户名和电子邮件的好方法。
  • 本地设置:这些设置仅适用于特定的 Git 仓库。这对于你需要在不同项目中使用不同身份时很有用,例如区分个人和工作项目。

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

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

git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"


git config --global user.name "code-ksy"
git config --global user.email "18439119426@163.com"

这里的 “Your Name” 和 “your.email@example.com” 应替换为你自己的姓名和电子邮件
本地设置
首先,确保你当前处于你想要配置的 Git 仓库的目录中。然后,输入以下命令来仅为该仓库设置用户名和电子邮件地址:

git config --local user.name "Your Name"
git config --local user.email "your.email@example.com"

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

1.4.3 验证Git的配置

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

  • 查看全局配置:
git config --global --list
  • 查看仓库配置:
git config --local --list
  • 永久保存信息至本地:
#来设置 Git自动记录密码(token),从而无需在每次 pull 或 push 时输入# 注意:信息会以明文存储在本地,需考虑安全性
git config --global credential.helper store
  • 查看特定配置项:
git config user.name
git config user.email

在这里插入图片描述

1.5 Git常用操作

1.5.1 Git简易入门四部曲

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

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

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

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

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

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

  • 推(Push)
    命令:git push
    作用:将本地仓库的更改推送到远程仓库。这一步是共享你的工作成果,让团队成员看到你的贡献。
    帮助团队成员有效地管理和同步代码,避免工作冲突,确保项目的顺利进行。正确地使用这些命令可以极大地提高开发效率和协作质量。

1.5.2 Git其它的常用命令

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

1.5.2 Git的使用

step1:进入项目
https://github.com/InternLM/Tutorial/tree/camp4
在这里插入图片描述
step2:将本项目直接fork到自己的账号下,这样就可以直接在自己的账号下进行修改和提交
在这里插入图片描述
step3:配置git并克隆项目到InternStudio本地

# 修改为自己fork的仓库,改为上图中你的https仓库的git地址,将random-zhou改为自己的用户名
git clone https://github.com/code-ksy/Tutorial.git 
#git clone git@github.com:random-zhou/Tutorial.git 
#git clone https://github.com/InternLM/Tutorial.git
cd Tutorial/
git branch -a
git checkout -b class origin/class

在这里插入图片描述
在这里插入图片描述
step4:创建分支

git checkout -b class_5103 # 自定义一个新的分支
#git checkout -b class_id 分支名字改为你的uid分支名称

step5:创建自己的介绍文件

这里提供了介绍文件的模板(路径 ./icamp4/id.md)

注意,在GitHub中需要再每一行的后面多打几个空格才能换行

step6:提交更改分支

git add .
git commit -m "add git_camp4_5103_introduction" # 提交信息记录,这里需要修改为自己的uid

step7:推送分支到远程仓库

git push origin class_5103
#注意,这里要改为你自己的分支名称
#大家提交使用英文,避免同步错误

在这里插入图片描述

二、作业

在这里插入图片描述

2.1 任务一:提交一份自我介绍。

step1:进入项目
https://github.com/InternLM/Tutorial/tree/camp4
在这里插入图片描述
step2:将本项目直接fork到自己的账号下,这样就可以直接在自己的账号下进行修改和提交
在这里插入图片描述
step3:配置git并克隆项目到InternStudio本地

# 修改为自己fork的仓库,改为上图中你的https仓库的git地址,将random-zhou改为自己的用户名
git clone https://github.com/code-ksy/Tutorial.git 
#git clone git@github.com:random-zhou/Tutorial.git 
#git clone https://github.com/InternLM/Tutorial.git
cd Tutorial/
git branch -a
git checkout -b class origin/class

在这里插入图片描述
在这里插入图片描述
step4:创建分支

git checkout -b class_036 # 自定义一个新的分支
#git checkout -b class_id 分支名字改为你的uid分支名称

step5:创建自己的介绍文件

这里提供了介绍文件的模板(路径 ./icamp4/id.md)

注意,在GitHub中需要再每一行的后面多打几个空格才能换行

step6:提交更改分支

git add .
git commit -m "add git_camp4_036_introduction" # 提交信息记录,这里需要修改为自己的uid

step7:推送分支到远程仓库

git push origin class_036
#注意,这里要改为你自己的分支名称
#大家提交使用英文,避免同步错误

在这里插入图片描述

2.2 任务二:创建并提交一个项目。

在这里插入图片描述
在这里插入图片描述
https://github.com/code-ksy/LLM-demo

参考博客:https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/git

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值