书生模型实战L0---Git(如何使用Git)

书生模型实战系列文章目录

第一章 入门岛L0(Linux)
第二章 入门岛L0(python)
第三章 入门岛L0(Git)



作业

任务

提交作业

任务一:破冰活动:自我介绍

https://github.com/BigBoomDream/Tutorial/blob/camp3/data/Git/task/camp3_2241.md

任务1
任务二:实践项目:构建个人项目

https://github.com/BigBoomDream/Learning_LLM_internvl

任务二


提示:以下是本篇文章正文内容

一、Git是什么?

来自通义千问的解释:

Git是一个分布式版本控制系统,它被广泛用于软件开发和项目管理中,以追踪文件的修改历史。通俗点说,Git就像是一个可以记录你文件变化的日志本,只不过这个日志本功能非常强大,能够处理非常复杂的情况。
举例:
假设你是一位作家,正在写一本小说。这本小说存储在你的电脑上,名字叫做Novel.txt。我们来看看如何使用Git来管理这本书的写作过程。

  • 第一步:初始化Git仓库

在你的电脑上,打开命令行工具(如Windows的CMD或PowerShell,Mac的Terminal)。
导航到包含Novel.txt文件的目录。输入git init命令,这会在当前目录下创建一个隐藏的.git文件夹,这里就是Git管理版本的地方。

  • 第二步:添加文件到Git

输入git add Novel.txt,这告诉Git开始跟踪Novel.txt的变化。 输入git status,你会看到Novel.txt已经被标记为要添加到仓库中。

  • 第三步:提交更改

输入git commit -m "初始版本",这会保存当前Novel.txt的状态,并添加一条注释,描述这次提交的内容。
每次你修改了Novel.txt,重复执行git addgit commit,这样你就有了多个版本的记录。

  • 第四步:查看历史

输入git log,可以看到所有提交的历史记录,包括日期、作者和提交信息。 使用git show
可以查看特定版本的细节,commit-id是你在git log中看到的一串长字符串。

  • 第五步:回退到旧版本

假设你对某次修改不满意,想回到之前的版本,你可以使用 git checkout <commit-id> -- Novel.txt,这里是你想要恢复到的版本的ID。

  • 第六步:创建分支

当你想要尝试一些新章节的想法,但又不想影响主线故事时,可以创建一个分支。 输入git branch my-new-chapter,然后git checkout my-new-chapter切换到这个分支。
在这个分支上,你可以自由地修改Novel.txt,而不会影响主分支(通常称为main或master)。

  • 第七步:合并分支

当你对新章节满意时,可以将其合并回主分支。 切换回主分支git checkout main,然后输入git merge my-new-chapter

  • 第八步:远程仓库与团队协作

如果你和其他作家合作,你们可以共享一个远程仓库(如GitHub、GitLab等)。 首先,你需要将本地仓库与远程仓库关联,使用git remote add origin <repository-url>。 然后,你可以使用git push origin main上传你的更改,或者使用git pull origin main获取其他人的更改。

通过上述步骤,你和你的团队就可以有效地管理文件的版本,追踪每一次的修改,以及协同工作,而无需担心丢失数据或产生冲突。Git的强大之处在于它能够处理大量的文件和复杂的变更历史,非常适合软件开发和大型项目管理。


二、Git一些基本概念

在Git中,我们经常听到的三个关键区域是:工作区(Working Directory)暂存区(Staging Area)Git仓库区(Git Repository)。下面我会用一个简单的例子来解释这三个概念。

图书馆借阅过程类比Git的工作流程:

图书馆(Library)

想象一下,图书馆就像是一个巨大的知识宝库,它保存着各种书籍的历史版本。这就好比是Git仓库,它是你的项目的中心存储库,包含了所有文件的版本历史

阅览室(Reading Room)

在图书馆里,有一个专门的阅览室,读者可以在这里阅读图书,但不能直接在书上做任何标记或修改。这类似于Git的工作区,它是你实际进行开发和修改文件的地方,但这些修改尚未被正式记录

书车(Book Cart)

图书馆员会使用一个小推车(书车),用来收集读者想要借阅的图书。当读者找到想要借阅的书时,他们会告诉图书馆员,然后图书馆员会把书放到书车上,准备借给读者。这个书车就好像是Git的暂存区,你在这里选择哪些修改应该被正式提交到仓库

操作流程

  1. 从图书馆借书(克隆仓库)

当你想开始一个新项目或继续一个现有项目时,你会从Git仓库中克隆(Clone)项目到你的本地机器,这就像从图书馆借书一样,你把整个项目的最新版本下载到你的工作区。

  1. 在阅览室阅读和做笔记(在工作区修改文件)

在图书馆的阅览室,你可以阅读书籍并做一些笔记,但不能直接在书上做标记。同样,在Git的工作区,你可以打开文件,修改代码,但这些修改还没有被记录到Git的历史中。

  1. 选择书籍借阅(添加到暂存区)

当你决定要借阅某些书籍时,图书馆员会把这些书放到书车上。在Git中,当你准备好将一些修改提交时,你可以使用git add命令,把修改过的文件加入到暂存区

  1. 借书手续(提交到仓库)

最后,图书馆员会正式办理借书手续,把书借给你。在Git中,当你对暂存区的修改满意后,使用
git commit命令,将修改正式提交到Git仓库,创建了一个新的历史记录

  1. 归还书籍(推送至远程仓库)

如果你对所做的修改非常满意,并且想让其他人也能看到,你可以把你的修改推送(Push)到远程仓库,这就像把书归还给图书馆,让其他人也能借阅你所读的书。

通过这个图书馆的类比,我们可以看到Git的工作流程与之非常相似,都是从一个中心库获取资源,在自己的空间进行操作,然后选择性地将改变反馈回中心库的过程


三、Git常用指令

3.1 配置

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

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

查看全局配置:

git config --global --list
git config user.name
git config user.email

3.2 初始化

这个直接使用是将当前目录初始化成本地仓库的

初始化指定目录的则是 git init < repo >

如果是创建一个裸仓则是 git init --bare

将指定目录创建成裸仓 git init --bare < repo >

    注:裸仓跟普通仓库的区别在于,裸仓一般就是用于远程中心仓库,可以被clone,普通仓库不具备被clone的条件。
    
    在声明了裸仓库之后,使用git add命令报错如下信息:
    git 错误 fatal: This operation must be run in a work tree 
因为裸仓库无法进行git操作,所以在创建裸仓库之后还要进行git init操作

初始化

3.3 添加文件

git add < filename >
使用之后把文件添加到暂存区

git add

3.4 提交文件到本地仓库

git commit -m “提交文件时的说明“
引号里面填写的是你提交文件时的说明,这个便于你了解版本修改内容”

这个命令是把文件从暂存区提交到仓库
提交文件到本地仓库

3.5 远程仓库操作

git clone 		克隆仓库
git push < remote-name > < branch-name >		提交到远程仓库
一般使用的是 git push origin master (main)
git pull				获取远程仓库中的最新更改

3.6 分支操作

git branch			查看仓库底下有多少分支
git branch < branch-name >     创建一个分支
git branch test				   创建一个名字为test的分支
git branch -d < branch-name >			删除分支
git branch -d test						删除指定分支 test
git checkout -b <branch-name>			创建并切换分支
git checkout < branch-name >			选择分支
git merge < branch-name >    			合并分支
git diff < filename >				查看分支具体改动
git log								查看git的提交历史,可以查看版本号,便于我们回退到某个历史
git relog							查看历史命令,便于我们回退到将来的某一个版本
git reset --hard < commit_id >		使用该命令可以让文件回归到特定版本

任务中采用的git命令:

git clone https://github.com/MrCatAI/Tutorial.git # 修改为自己frok的仓库
cd Tutorial/
git branch -a
git checkout -b camp3 origin/camp3

在这里插入图片描述
在这里插入图片描述

git checkout -b camp3_577 # 自定义一个新的分支

在这里插入图片描述

touch ./data/Git/task/camp3_557.md #创建自己的文件

在这里插入图片描述

提交更改到分支
git add .
git commit -m "add git_557_introduction" # 提交信息记录

在这里插入图片描述

git push origin camp3_577
注:初始化时可能需要创建对应的 token:(示例,可根据实际提示完成)

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
查看提交
在这里插入图片描述
在 github 页面将修改的内容 PR 到 Tutorial
在这里插入图片描述
下面可以查看修改的内容
在这里插入图片描述
也可以合并到自己的仓库
在这里插入图片描述

自己的仓库,可以自行 merge,作业提交到 Tutorial 需要维护者审核
在这里插入图片描述


四、Git开发中遇到的问题以及解决方案

1、在git clone 中一直提示连接失败(不要用魔法!!!
2、Github fork项目时只有默认分支。【最下面的对号不要点!!!】
https://zhuanlan.zhihu.com/p/706442338
3、使用vscode + git:在cmd界面, start code .
4、git push时,提示邮箱隐私问题,需要用隐藏地址。(不要用魔法!!!https://blog.csdn.net/angelQin0704/article/details/136466097
https://blog.csdn.net/python_innocent/article/details/130560871
在这里插入图片描述


总结

课程设计的很好,前面的vscode之前没用过,学习到了远程连接和debug;现在又学习了最常用的分布式文件管理git。必须赞一个!!!感谢书生团队!!!

git安装教程

https://blog.csdn.net/mukes/article/details/115693833

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值