书生大模型入门岛第三关:Git基础知识

1Git是什么

1.1Git基本概念

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

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

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

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

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

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

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

主要功能

  • 代码历史记录跟踪

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

  • 团队协作

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

  • 变更审查

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

  • 实现机制

特性描述
分布式架构与集中式版本控制系统不同,Git 在每个开发者的机器上都存有完整的代码库副本,包括完整的历史记录。这种分布式的特性增强了数据的安全性和获取效率。
分支管理Git 的分支管理功能非常灵活,支持无缝切换到不同的开发线路(分支),并允许独立开发、测试新功能,最终通过合并操作将这些功能稳定地集成到主项目中。
快照系统Git 通过快照而非差异比较来管理数据。每次提交更新时,Git 实际上是在存储一个项目所有文件的快照。如果文件没有变化,Git 只是简单地链接到之前存储的文件快照。

1.2Git常用操作

这里是一段通俗易懂的解释:想象你正在制作一个拼图。每一块拼图代表一个文件或者项目的部分。你开始时可能有一个完整的图片作为参考,但在拼图过程中,你可能会试图调整一些拼图块的位置或者尝试不同的组合方式。

  1. git add (添加): 这个命令就像是将拼图块从桌子上移动到你的拼图盒子里。当你完成了一些新的工作或修改后,使用git add将这些更改“添加”到Git的追踪列表中,准备提交到最终版本。

  2. git commit (提交): 当你认为你已经完成了一部分工作,并想要保存这些更改时,你使用git commit。这就像是将拼图盒子封闭起来,保存了当前的拼图进度,这些更改会得到一个描述性的标签,以便你以后可以轻松地回到这个状态。

  3. git branch (分支): 分支就像是在拼图过程中创建一个新的拼图盒子,你可以在其中尝试不同的组合,而不影响主要的拼图进度。使用git branch你可以创建一个独立的工作空间,你可以在其中安全地进行实验,不会影响主线的开发。

  4. git checkout (切换): 当你想要从一个分支(拼图盒子)切换到另一个分支时,你可以使用git checkout。这就像是从一个拼图盒子中取出你的拼图,然后将其放入另一个盒子中,让你可以在不同的拼图组合之间轻松切换。

  5. git merge (合并): 如果你在一个分支上的工作已经完成,并且你想要将这些更改合并到主线(或其他分支)上,你可以使用git merge。这就像是将两个拼图盒子的内容合并成一个,将一个分支的更改融入到另一个分支中。

  6. git clone (克隆): 这个命令就像是从商店购买一个完整的拼图套装,包括所有的拼图块和说明书。使用git clone,你可以复制一个远程仓库到你的本地计算机上,包括所有的历史记录和分支。

  7. git pull (拉取): 当你想要获取远程仓库中的最新更改时,你可以使用git pull。这就像是检查拼图商店是否有新的拼图块,然后将它们添加到你的拼图盒子中。

  8. git push (推送): 如果你在本地完成了一些工作,并希望将这些更改上传到远程仓库,你可以使用git push。这就像是分享你的拼图盒子,让其他人可以看到你的最新拼图进度。

  9. git status (状态): 当你想知道当前项目的更改状态时,你可以使用git status。它会告诉你哪些文件已经被修改、哪些文件已经被添加到暂存区,以及哪些文件还没有被Git追踪。

  10. git log (日志): 如果你想查看项目的提交历史,你可以使用git log。它会显示所有的提交记录,包括每次提交的作者、日期和描述信息。

  11. git reset (重置): 当你想要撤销某些更改或回退到之前的提交状态时,你可以使用git reset。这就像是重新开始拼图,将一些错误的拼图块重新放回到盒子中。

Git下载地址:Git - Downloading Package (git-scm.com)

下载完成后可以通过git --version查看git的版本号

1.3全局设置 vs. 本地设置

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

1.3.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" 为该特定项目中使用的姓名和电子邮件。

1.3.2验证设置

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

  • 查看全局配置

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

    git config --local --list
  • 查看特定配置项

    git config user.name
    git config user.email

1.4Git 四步曲

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

添(Add)

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

提(Commit)

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

拉(Pull)

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

推(Push)

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

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

2常规开发流程

2.1克隆并修改项目

Fork创建一个新的分支,相当与创建了一个副本在自己的仓库下

将项目从github上克隆到我们本地

这里需要进入到项目的目录才可以查看当前的分支,然后创建了一个camp3_577的新的分支

这里修改了一下这个文件里面的内容

2.2将本地内容添加到暂缓区等待提交

2.3添加提交的描述信息

这里需要提前配置号你的用户名和邮箱信息

2.4将本地仓库的更改推送到远程仓库

2.5查看提交的分支

在远程仓库可以看见我们提交上来的分支

在此处查看我们修改的变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值