Git 是一个分布式版本控制系统,用于跟踪文件的更改,尤其适合软件开发。

1.安装Git

进入Git网址 https://git-scm.com/

1.1 安装界面

1.2 一路Next一直到安装

然后你的右键菜单栏就会出现

2.常用命令

进入git bash

2.1. 初始化 Git 仓库

git init

在当前目录初始化一个新的 Git 仓库。

2.2. 克隆远程仓库

git clone <repository_url>

从远程仓库克隆一个版本到本地。

2.3. 查看状态

git status

查看当前工作区的状态,包括未追踪、已修改或已准备提交的文件。

2.4. 添加文件

git add <file>

将文件添加到暂存区。使用 git add . 添加所有更改的文件。

2.5. 提交更改

git commit -m "commit message"

将暂存区的更改提交到本地仓库,并添加提交信息。

2.6. 查看提交历史

git log

查看提交历史,展示提交记录。

2.7. 创建分支

git branch <branch_name>

创建一个新分支。

2.8. 切换分支

git checkout <branch_name>

切换到指定的分支。

2.9. 合并分支

git merge <branch_name>

将指定分支的更改合并到当前分支。

2.10. 删除分支

git branch -d <branch_name>

删除本地分支。

2.11. 推送更改到远程仓库

git push origin <branch_name>

将本地的提交推送到远程仓库。

2.12. 拉取远程仓库的更改

git pull origin <branch_name>

从远程仓库拉取并合并更改。

2.13. 查看远程仓库

git remote -v

查看配置的远程仓库列表。

2.14. 添加远程仓库

git remote add origin <repository_url>

将远程仓库添加到本地仓库。

3.Git 子库 Submodule的使用

Git Submodule 是 Git 中的一个功能,允许你将一个 Git 仓库作为另一个 Git 仓库的子目录。这在管理依赖或共享代码时非常有用。

1. 添加 Submodule

要在现有的 Git 仓库中添加一个子模块,使用以下命令:

git submodule add <repository_url> <path>
  • <repository_url>:子模块的 Git 仓库地址。

  • <path>:你希望将子模块放置的位置。

例如:

git submodule add https://github.com/example/repo.git subdir/repo

2. 初始化 Submodule

如果你克隆了一个包含子模块的仓库,你需要初始化和更新子模块:

git submodule init
git submodule update

你可以用以下命令一次性完成这两个步骤:

git submodule update --init

3. 更新 Submodule

要更新子模块到最新提交,可以使用:

git submodule update --remote

这将拉取子模块中的最新更改。

4. 查看 Submodule 状态

可以使用以下命令查看子模块的状态:

git submodule status

这会显示每个子模块的当前提交和路径。

5. 切换分支

如果你需要在子模块中切换到其他分支,首先进入子模块目录,然后执行:

git checkout <branch_name>

6. 提交 Submodule 更改

在子模块中做了更改后,进入子模块目录,添加并提交更改:

git add .
git commit -m "Update submodule"

回到主仓库,提交子模块的引用更新:

git add <submodule_path>
git commit -m "Update submodule reference"

7. 删除 Submodule

要删除一个子模块,执行以下步骤:

  1. .gitmodules 文件中删除相关条目。

  2. .git/config 文件中删除相关条目。

  3. 删除子模块的目录:

    git rm --cached <submodule_path>
    rm -rf <submodule_path>
    
  4. 提交更改。

8. 克隆包含 Submodule 的仓库

当克隆一个包含子模块的仓库时,使用:

git clone --recurse-submodules <repository_url>

这会自动初始化和更新所有子模块。