git命令
Git 是一个开源的分布式版本控制系统,用于在软件开发过程中追踪和管理源代码的变更历史。它采用分布式架构,每个本地工作目录都包含完整的历史记录和版本追踪能力,不强制依赖中央服务器即可实现版本回溯与提交。Git 支持高效的分支管理与合并机制,允许非线性开发工作流,并通过暂存区(Staging Area)实现对变更内容的精细化管理。同时,该系统利用哈希算法确保数据在存储与传输过程中的完整性与一致性。
设置身份
1 | git config --global user.name "username" |
创建仓库
在本地创建一个新的 git 仓库
1 | git init [directory] |
git init 用于在本地创建一个新的 Git 仓库。它会初始化一个空的 Git 仓库,包含一个 .git 目录,用来存储版本控制相关的信息(如提交记录、分支信息等)。
- 如果不指定
[directory],Git 会在当前目录初始化仓库。 - 如果指定了
[directory],Git 会在指定的目录中创建一个新的文件夹并初始化仓库。
适用场景
- 当你需要从零开始创建一个新的项目,并希望对其进行版本控制时。
- 适用于本地开发环境,尚未与远程仓库关联的情况。
注意事项
- 初始化后,仓库是“裸”的,没有远程仓库地址。如果需要与远程仓库同步,需要手动添加远程地址(通过
git remote add命令)。
添加远程地址
1 | git remote add origin [email protected]:TimeAIssr/blog.git # 连接远程仓库,可以添加多个 |
从远程仓库克隆(下载)代码到本地
1 | git clone <repository-url> [directory] |
1 | git submodule update --init --recursive # 更新子模块(一般用不到 |
git clone 用于从远程仓库克隆(下载)代码到本地。它不仅会复制代码文件,还会完整地复制远程仓库的所有历史记录、分支信息等。
<repository-url>:远程仓库的地址(可以是 HTTPS 或 SSH 格式)。[directory](可选):指定克隆到本地的目录名称。如果不指定,默认会以远程仓库的名字作为目录名。
注意事项
- 克隆完成后,Git 会自动将远程仓库的地址设置为默认的
origin。 - 你可以直接使用
git pull和git push与远程仓库交互,无需额外配置。
对比 git init 和 git clone
| 特性 | git init |
git clone |
|---|---|---|
| 功能 | 创建一个新的本地仓库 | 从远程仓库克隆代码到本地 |
| 适用场景 | 从零开始创建新项目 | 获取已有的远程仓库代码 |
| 是否需要远程仓库 | 不需要 | 需要 |
| 是否包含历史记录 | 不包含(因为是全新的仓库) | 包含完整的提交历史记录和分支信息 |
| 是否自动关联远程仓库 | 否(需要手动添加远程地址) | 是(默认关联远程仓库地址 origin) |
git init:适合从零开始创建新项目,初始化一个新的本地仓库。git clone:适合获取已有的远程仓库代码,包含完整的历史记录和分支信息。
简单流程
1 | git add . |
分支
1 | git checkout <branch-name> # 切换到指定分支 |