Git 是一种开源的分布式版本控制系统,广泛应用于软件开发领域,尤其是在协同工作环境中。
它为程序员提供了一套必备的工具,使得团队成员能够有效地管理和跟踪代码的历史变更。下面是 Git 的主要功能和作用的规范描述:
官方文档:Git - Book
Git 基础:Git 基础知识
使用版本控制的优点 实现跨区域多人协同开发 追踪和记载一个或者多个文件的历史记录 组织和保护你的源代码和文档 统计工作量 并行开发、提高开发效率 跟踪记录整个软件的开发过程 减轻开发人员的负担,节省时间,同时降低人为错误
工作区、暂存区和 Git 仓库区
文件状态 文件在 Git 工作区中的状态可以是:
分支 分支是 Git 的一大特性,支持轻量级的分支创建和切换。Git 鼓励频繁使用分支和合并,使得并行开发和错误修正更为高效。
主要功能
特性 | 描述 |
---|---|
分布式架构 | 与集中式版本控制系统不同,Git 在每个开发者的机器上都存有完整的代码库副本,包括完整的历史记录。这种分布式的特性增强了数据的安全性和获取效率。 |
分支管理 | Git 的分支管理功能非常灵活,支持无缝切换到不同的开发线路(分支),并允许独立开发、测试新功能,最终通过合并操作将这些功能稳定地集成到主项目中。 |
快照系统 | Git 通过快照而非差异比较来管理数据。每次提交更新时,Git 实际上是在存储一个项目所有文件的快照。如果文件没有变化,Git 只是简单地链接到之前存储的文件快照。 |
git --version
检查是否安装成功。通过包管理器安装 Git:
sudo apt update
sudo apt install git
输入指令 git --version
检查安装版本。
Github 需要魔法,可以选择自行选择使用。
基础指令
指令 | 描述 |
---|---|
git config | 配置用户信息和偏好设置 |
git init | 初始化一个新的 Git 仓库 |
git clone | 克隆一个远程仓库到本地 |
git status | 查看仓库当前的状态,显示有变更的文件 |
git add | 将文件更改添加到暂存区 |
git commit | 提交暂存区到仓库区 |
git branch | 列出、创建或删除分支 |
git checkout | 切换分支或恢复工作树文件 |
git merge | 合并两个或更多的开发历史 |
git pull | 从另一仓库获取并合并本地的版本 |
git push | 更新远程引用和相关的对象 |
git remote | 管理跟踪远程仓库的命令 |
git fetch | 从远程仓库获取数据到本地仓库,但不自动合并 |
进阶指令
指令 | 描述 |
---|---|
git stash | 暂存当前工作目录的修改,以便可以切换分支 |
git cherry-pick | 选择一个提交,将其作为新的提交引入 |
git rebase | 将提交从一个分支移动到另一个分支 |
git reset | 重设当前 HEAD 到指定状态,可选修改工作区和暂存区 |
git revert | 通过创建一个新的提交来撤销之前的提交 |
git mv | 移动或重命名一个文件、目录或符号链接,并自动更新索引 |
git rm | 从工作区和索引中删除文件 |
每个指令都有其特定的用途和场景,详细的使用方法和参数可以通过命令行的帮助文档(git command -h
,例如 git pull -h
)来获取更多信息。
全局设置用户信息 打开终端或命令提示符,并输入以下命令来设置全局用户名和电子邮件地址:
git config --global user.name "Your Name"
git config --global user.email "your.email@example.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"
为该特定项目中使用的姓名和电子邮件。
在设置完用户信息后,你可能想要验证这些设置以确保它们被正确应用。
查看全局配置:
git config --global --list
查看仓库配置:
git config --local --list
查看特定配置项:
git config user.name
git config user.email
在Git的日常使用中,下面四步曲是常用的流程,尤其是在团队协作环境中。
添(Add)
git add <文件名>
或 git add .
提(Commit)
git commit -m '描述信息'
拉(Pull)
git pull
推(Push)
git push
帮助团队成员有效地管理和同步代码,避免工作冲突,确保项目的顺利进行。正确地使用这些命令可以极大地提高开发效率和协作质量。
仅演示常规使用,其他优点,大家可以自行挖掘。
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 # 自定义一个新的分支
示例:
示例文件路径
./data/Git/task/camp3_id.md
touch ./data/Git/task/camp3_557.md # 修改为自己的问卷ID
git add .
git commit -m "add git_557_introduction" # 提交信息记录
git push origin camp3_577
(大家提交使用英文,避免仓库同步错误)
注:初始化时可能需要创建对应的 token:(示例,可根据实际提示完成)
查看提交
在 github 页面将修改的内容 PR 到 Tutorial
按要求编写 title
git_557_introduction # 请统一 git_<id>_introduction 格式,方便审核
下面可以查看修改的内容
PR 示例链接:https://github.com/InternLM/Tutorial/pull/790
也可以合并到自己的仓库
自己的仓库,可以自行 merge,作业提交到 Tutorial 需要维护者审核。
咱们国家的实战营,就不要用外国的扯犊子服务了,完了阿美莉卡把这扯犊子网站一关,还学个p 啊。
解决方案:
git config --global http.sslbackend schannel
【大家可以叫我】:shiter 【坐标】:陕西 【专业/职业】:大数据AI工程师 【兴趣爱好】: 游泳 【项目技能】cv 【组队情况】无 【本课程学习基础】:不太会 【本期活动目标】:做个领域问答机器人
由于我家网络,系统,git 还开了两阶段认证,所以用gui 登录 提交一下
之前公司当项目经理时候也这么操作过,有点忘了。
提交的PR
我创建的仓库:
什么是 Git 版本控制工程化 最佳实践
大模型实战营 地址
入门岛
第三期 学院闯关手册
第三期 作业提交
第二期 学员手册
算力平台
课程文档
课程视频
代码仓库
优秀项目展示与学习
原始文档
https://github.com/InternLM/Tutorial/blob/camp3/docs/L0/Linux/readme.md
本人博客: