跳转至

Git

本教程旨在帮助初学者了解 Git 基础知识,介绍 Git 的概念和操作,以及一些常用的 Git 工具和高级操作。

一、什么是 Git?为什么要用 Git?

Git 是一种分布式版本控制工具,可以管理计算机上的文件和代码。使用 Git 可以进行版本控制,让多人协作开发更容易,也可以方便地撤销修改、查看历史记录等。

传统的版本控制系统如 CVS 或 SVN 都是集中式的,即所有代码都保存在一个中央服务器上,如果中央服务器出现问题,将导致整个代码库不可用。而 Git 是一种分布式版本控制系统,每个开发者都有自己的本地仓库,可以进行提交、修改、合并等操作,即使中央服务器出现问题,也不会影响每个开发者的本地仓库。

二、Git 的基本原理和概念

Git 具有以下概念:

  • 版本控制:Git 能够跟踪和管理文件的修改历史,可以恢复旧版文件,同时也能防止因意外修改而丢失重要数据。
  • 仓库:保存文件和代码的地方,分为本地仓库和远程仓库。
  • 分支:指不同的代码分支,可以在不影响主分支的情况下进行单独的开发。
  • 提交:将修改过的文件保存到本地仓库中的操作。

三、Git 的安装和配置

  1. 下载并安装 Git(Windows)。

可以从 Git 官网(https://git-scm.com/download/win)下载 Windows 版本的 Git,然后按照提示完成安装。

  1. 配置用户信息(用户名和电子邮件)。

每次 Git 提交都需要指定提交者的用户名和电子邮件地址。可以使用以下命令配置全局的用户名和邮件地址:

Bash
   git config --global user.name "Your Name Here"
   git config --global user.email "your_email@example.com"

四、创建 Git 仓库

  1. 在本地创建一个新目录,并进入该目录。

在命令行中执行以下命令,可以创建并进入新的目录:

Bash
   mkdir myrepo
   cd myrepo
2. 通过 git init 命令将该目录初始化为 Git 仓库。

执行以下命令将当前目录初始化为 Git 仓库:

Bash
   git init

五、添加、修改、删除文件并提交到 Git 仓库

  1. 添加新文件:git add [file]。

在 Git 中,添加新文件是分两步进行的。首先,使用 git add 命令将新文件添加到 Git 的暂存区域(stage)。例如,添加名为 myfile.txt 的文件,可以执行以下命令:

Bash
   git add myfile.txt
该命令将 myfile.txt 添加到了 Git 的暂存区域。

  1. 修改文件:修改本地文件,然后使用 git add [file] 添加到暂存区域。

如果已经有文件存在于 Git 的仓库中,并且需要对该文件进行修改并提交,可以执行以下步骤:

  • 修改本地文件。
  • 使用 git add 命令将修改后的文件添加到 Git 的暂存区域。例如,修改名为 myfile.txt 的文件,可以执行以下命令:

git add myfile.txt

  1. 删除文件:git rm [file] 或者先手动删除文件,然后使用 git add [file] 将该操作添加到暂存区域。

在 Git 中,删除文件也需要分两步进行。首先,使用 git rm 命令从 Git 的暂存区域中删除文件,然后使用 git commit 命令将删除操作提交到 Git 仓库中。例如,删除名为 myfile.txt 的文件,可以执行以下命令:

Bash
   git rm myfile.txt
也可以先手动删除文件,然后使用 git add 命令将删除操作添加到暂存区域。例如,假设手动删除名为 myfile.txt 的文件,可以执行以下命令:
Bash
   rm myfile.txt
   git add myfile.txt
4. 提交修改:使用 git commit 命令将暂存区域的文件提交到 Git 仓库。

每次提交前,需要将修改后的文件添加到 Git 的暂存区域。提交时,Git 会将暂存区域中的文件打包并保存为一个新的版本。例如,提交名为 Initial commit 的修改,可以执行以下命令:

Bash
   git commit -m "Initial commit"
此处的 -m 参数用于指定提交信息,可以根据需要进行修改。

六、查看提交历史、版本回退与撤销修改

  1. 查看历史记录:git log 命令可以查看提交历史记录。

Git 的提交历史记录保存在 Git 仓库的数据库中。可以使用 git log 命令查看提交历史记录。执行以下命令:

Bash
   git log
该命令将输出所有的提交历史记录。

  1. 版本回退:使用 git reset 命令可以回退到某一个历史版本。

如果需要回退到某一个历史版本,可以使用 git reset 命令。例如,回退到前一个版本,可以执行以下命令:

Bash
   git reset HEAD~
3. 撤销修改:使用 git checkout -- [file] 命令可以撤销指定文件的修改。

如果对一个文件进行了修改,但是不想将该修改提交到 Git 仓库中,可以使用 git checkout -- 命令。例如,撤销已经修改的名为 myfile.txt 的文件,可以执行以下命令:

Bash
   git checkout -- myfile.txt

七、分支管理:创建、合并、删除分支

  1. 创建新分支:git branch [branch] 命令创建一个新分支。

在 Git 中,每个分支都是指向一个提交对象的指针。可以使用 git branch 命令创建新分支。例如,创建名为 mybranch 的新分支,可以执行以下命令:

Bash
   git branch mybranch
2. 切换分支:git checkout [branch] 命令切换到指定分支。

使用 git checkout 命令可以在不同的分支之间进行切换。例如,切换到名为 mybranch 的分支,可以执行以下命令:

Bash
   git checkout mybranch
3. 合并分支:在目标分支上使用 git merge [branch] 命令,合并其他分支的代码。

在 Git 中,合并分支是将两个或多个分支的修改组合起来。在目标分支上使用 git merge 命令,可以将其他分支的修改合并到目标分支中。例如,在当前分支上将名为 mybranch 的分支合并到当前分支,可以执行以下命令:

Bash
   git merge mybranch
4. 删除分支:使用 git branch -d [branch] 命令删除指定分支。

如果不需要某个分支了,可以使用 git branch -d 命令删除该分支。例如,删除名为 mybranch 的分支,可以执行以下命令:

Bash
   git branch -d mybranch

八、远程仓库和协作开发

  1. 添加远程仓库:使用 git remote add [name] [url] 命令添加远程仓库的 URL 地址。

可以使用 git remote add 命令添加远程仓库,例如:

Bash
   git remote add origin https://github.com/username/repo.git
2. 推送本地代码到远程仓库:使用 git push [remote] [branch] 命令将本地仓库代码推送到远程仓库。

在将本地仓库的代码推送到远程仓库之前,需要将更改提交到本地仓库。之后,使用 git push 命令将其推送到远程仓库。

Bash
   git push origin master
3. 拉取远程仓库的更新:使用 git pull 命令拉取远程仓库的更新。

在多人协作开发中,其他开发者可能会对远程仓库进行更改,因此需要及时拉取远程仓库的更新。可以使用 git pull 命令拉取远程仓库的最新更新。例如:

Bash
   git pull origin master
4. 解决冲突

当多个人修改同一文件时,可能会产生冲突,需要手动合并代码。如果在更新代码时出现冲突,Git 会提示你需要手动解决冲突。可以使用以下命令解决冲突:

Bash
   git mergetool

九、深入学习 Git

  1. 标签:使用 git tag [tag] 命令创建标签,可以方便地查看特定版本的代码。

标签是指向某个特定提交对象的指针,可以用来标记重要的提交或版本。可以使用 git tag 命令创建标签。例如,创建一个名为 v1.0 的标签,并将其指向最新的提交对象,可以执行以下命令:

Bash
   git tag v1.0
2. 子模块:可以在一个 Git 仓库的目录中引用另一个 Git 仓库的代码。

Git 中的子模块是一个独立的 Git 仓库,可以作为主 Git 仓库的子目录使用。可以使用以下命令添加子模块:

Bash
   git submodule add https://github.com/username/repo.git path/to/submodule
1. Git 工作流:通过规定团队的工作流程,可以更好地协作开发。

Git 工作流指的是使用 Git 进行多人协作开发的流程。常见的 Git 工作流包括中心式工作流、功能分支工作流、Git Flow 等。

十、常见的 Git 工具介绍

  1. GUI 工具:TortoiseGit、SourceTree、GitKraken 等。

GUI 工具可以提供更直观的界面和更丰富的功能,比如可以方便地可视化查看提交历史记录、分支等。

  1. 命令行工具:Linux 终端、Windows 命令提示符或 PowerShell 等。

命令行工具可以提供更灵活的操作和更快的速度,适合熟练掌握 Git 的用户使用。

  1. 插件:与 IDE 集成的 Git 插件,例如 Visual Studio Code 的 GitLens。

插件可以在编写代码的同时操作 Git,方便快捷。