8.11 书生大模型实战营3 - git基础知识

1. git是什么

Git 是一种开源的分布式版本控制系统,广泛应用于软件开发领域,尤其是在协同工作环境中。它为程序员提供了一套必备的工具,使得团队成员能够有效地管理和跟踪代码的历史变更。下面是 Git 的主要功能和作用的规范描述:

官网:Git

官方文档:Git - Book

Git 基础:Git 基础知识

2. Git 中的一些基本概念

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

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

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

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

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

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

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

主要功能

  • 代码历史记录跟踪

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

  • 团队协作

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

  • 变更审查

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

2.2 git的全局设置 vs. 本地设置

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

2.2.1 如何配置

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

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

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

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

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

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

2.2.2 验证设置

在设置完用户信息后,你可能想要验证这些设置以确保它们被正确应用。

  • 查看全局配置

    git config --global --list
  • 查看仓库配置

    git config --local --list

2.3 新建版本库(仓库)-Repository

这里的仓库可以理解为一个目录,对于目录中的每一个文件,git都可以对这些文件进行管理。这些文件的添加、删除、修改等操作,都可以被git跟踪到,以便随时查看历史版本和回溯到之前的版本。

对于创建仓库有以下两种方式:

方式一:从本地直接新建一个仓库

               git init

方式二:从GitHub等远程服务器上克隆一个仓库

               git clone + 链接

2.4 基本用法-添加和提交文件

git status可以看见目前仓库处于哪一个分支、有哪些文件以及文件的状态

例如新建一个txt文件,git status:

根据提示的命令,可以再把1.txt文件从暂存区中“拿出来”!

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

如果不加-m 参数,则会进入到vim的编辑模式,输入标识信息即可!如果默认的不是vim则会报错!

git log 可以看见提交信息,大致如下:

git reset:用于回退到此前的某一个版本

hard参数谨慎使用!

如果使用之后,仍然想回溯,则可以用 git reflog,再用git reset 即可!

git diff:

git diff 可以比较工作区和暂存区之间的差异

git diff --cached 可以比较暂存区和仓库之间的差异

git diff HEAD~ HEAD 比较当前版本和上一个版本的区别!  HEAD表示当前分支的最新提交

2.5 本地仓库与远程仓库

2.6 分支

3. 作业

任务1:

每位参与者提交一份自我介绍。 提交地址:GitHub - InternLM/Tutorial: LLM&VLM Tutorial 的 camp3 分支~

要求

  1. 命名格式为 camp3_<id>.md,其中 <id> 是您的报名问卷ID。
  2. 文件路径应为 ./data/Git/task/
  3. 【大家可以叫我】内容可以是 GitHub 昵称、微信昵称或其他网名。
  4. 在 GitHub 上创建一个 Pull Request,提供对应的 PR 链接。

PR链接如下:

Comparing InternLM:camp3...lucky1day:camp3_3972 · InternLM/Tutorial (github.com)

任务2: 实践项目:构建个人项目

创建一个个人仓库,用于提交笔记、心得体会或分享项目。

要求

  1. 创建并维护一个公开的大模型相关项目或笔记仓库。
  2. 提交作业时,提供您的 GitHub 仓库链接。
  3. 如果您不常使用 GitHub,您可以选择其他代码管理平台,如 Gitee,并提交相应的链接。
  4. 仓库介绍中添加超链接跳转 GitHub 仓库GitHub - InternLM/Tutorial: LLM&VLM Tutorial
  5. 将此项目报名参加第三期实战营项目评选将解锁 30% A100 和 168 团队算力点资源,报名链接:Docs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值