当前位置: 首页 > news >正文

GIT 企业级开发学习 1_基本操作

本节主要命令:

git init

ls 不能列出 .git 

ls -a 列出 .git

创建本地仓库

1. 初始化 Git 仓库

git init

• 初始化一个新的 Git 仓库,在当前目录下生成一个 .git 隐藏文件夹,用于存储版本控制信息。

2. 查看隐藏文件

ls -a

• 使用 ls -a 显示隐藏文件,验证 .git 文件夹是否存在。

配置本地仓库

3. 配置用户信息

设置用户名和邮箱
 

git config user.name "liutao"git config user.email "123123@qq.com"

• 配置当前仓库的用户名和邮箱,用于标识提交记录的作者。

全局设置用户名和邮箱
 

git config --global user.name "liutao"git config --global user.email "123123@qq.com"

• 设置全局用户名和邮箱,适用于所有仓库。

• 全局配置会存储在 ~/.gitconfig 文件中。

4. 查看配置信息

git config -l

• 列出当前 Git 仓库的配置信息,包括用户名、邮箱以及仓库的核心配置。

5. 修改或删除配置

删除配置信息
 

git config --unset user.namegit config --unset user.email

• 删除当前仓库的用户名和邮箱配置。

(对应 没有加 global 的配置命令,加了 global 的配置会无法删除)

删除全局配置信息
 

git config --global --unset user.namegit config --global --unset user.email

• 删除全局的用户名和邮箱配置。

(对应加了 global 的配置命令)

6. 配置中容易出错的地方

引号错误

• 注意双引号或单引号要成对出现,例如:

git config user.name "liutao  "

而不是:

git config user.name "liutao'

命令拼写错误

• 如 gt 应为 git,--emait 应为 --email,需注意拼写。

多余字符或未完成命令

• 遇到 ^C 或 1 时,表示命令中途中断或未正确执行。

7. 配置验证

通过以下命令验证配置是否正确:

git config -l

确保输出的用户名和邮箱信息是你期望的内容。

8. 总结要点

• Git 的初始配置是进行版本控制的第一步,设置用户名和邮箱是必要的。

• 区分全局配置和当前仓库的配置,必要时使用 --global 或 --unset 修正。

• 运行 git config -l 验证设置,确保没有拼写错误或引号错误。

这些操作是 Git 基础,掌握后可以继续学习文件的添加、提交以及远程仓库的使用。

认识工作区

问:可以在.git 文件夹下创建ReadMe文件,使用版本库管理ReadMe

答:.git 文件夹是 Git 版本库的内部目录,主要用于存储 Git 的对象、配置、索引等信息。一般来说,不建议在 .git 文件夹内部创建和管理文件,比如 ReadMe,因为 .git 目录的内容是由 Git 自己维护的,手动修改可能会导致问题。

目前情况下,Git能否管理ReadMe文件??

添加文件

编辑一下README.md

index 存储 add 的暂存区文件;

HEAD 是 git 的指针,指向当前分支,分支 master 存储最新一次提交;

objects目录下的内容是 Git 存储的各种对象,主要包括 提交对象(commit,代表一次提交,记录 tree,作者,提交日期等信息)、树对象(tree,就是存储 目录结构) 和 blob(文件内容,不存储文件名和目录结构)。

commit操作

git log 

命令分析与解释

1. cat .git/HEAD

ref: refs/heads/main

• HEAD 指向 refs/heads/main,这意味着 HEAD 指向 main 分支。也就是说,当前操作的分支是 main。

2. cat .git/refs/heads/main

db4c5b23bab5b4df3cd68c821c0df30ff00dd177

• 这表示 main 分支 的最新提交(即提交哈希值为 db4c5b23bab5b4df3cd68c821c0df30ff00dd177)是当前分支的指向。

3. git log --pretty=oneline

db4c5b23bab5b4df3cd68c821c0df30ff00dd177 (HEAD -> main) commit 3 files

9080dfc599200764b50b382576f5c29d7e9ea8cc add first file

• main 分支存放的是当前分支的最新提交记录

• HEAD 是指向当前分支的指针,在我的情况下,HEAD 指向 main 分支。

• git log 命令显示了提交的历史,其中最新的提交(哈希值 db4c5b23bab5b4df3cd68c821c0df30ff00dd177)是当前的提交。

所有操作都是基于当前分支 main 和它的最新提交进行的。

注意 blob 哈希值前两位是文件夹的名称,比如:

100644 blob 8d0e41234f24b6da002d962a26c2495ea16a425f    README.md

使用 tree .git/ 命令发现:

objects
│   ├── 2d
│   │   └── f6e46812c6a5b2505368eb0e30342427ee7568
│   ├── 5e
│   │   └── b35199f283a64da21d7735ba0f5fb61d3e754e
│   ├── 6f
│   │   └── 750423942c286d0b7817c104dfaa46ced1ee33
│   ├── 8d
│   │   └── 0e41234f24b6da002d962a26c2495ea16a425f


http://www.mrgr.cn/news/82530.html

相关文章:

  • 亚信安全2025年第1期《勒索家族和勒索事件监控报告》
  • 多模态论文笔记——U-ViT(国内版DiT)
  • github开源链游详细搭建文档
  • 本地测试文件解析
  • 【GUI-pyqt5】QWidget类
  • 软件工程实验-实验2 结构化分析与设计-总体设计和数据库设计
  • Navicat 17 for Mac 数据库管理软件
  • 人工智能之机器学习算法
  • 【QT】增删改查 XML 文件的类
  • AI是如何实现推理的
  • Ant Design Pro写项目的总结经验(react)
  • ABAQUS三维Voronoi晶体几何建模
  • Flume拦截器的实现
  • 我用AI学Android Jetpack Compose之开篇
  • unity学习6:unity的3D项目的基本操作
  • 文件上传漏洞
  • node.js之---内置模块
  • node.js内置模块之---EventEmitter 类
  • 树莓派5-yolo5部署
  • MySQL8安装与卸载
  • 局域网中单台交换机VLAN应用
  • Visual Studio 中增加的AI功能
  • java 自定义字典序列化器:使用注解自动转换字典信息(自定义注解转换字典)
  • Fabric环境部署
  • Chromebook 的 4 个最佳变声器
  • IP5385应用于移动电源快充方案的30W到100W大功率电源管理芯片