Git 的正确使用姿势与最佳实践:团队协作和版本控制的最佳实践| 青训营

62 阅读7分钟

0.什么是git

git是到目前为止,当今世界上使用最广泛的现代版本控制系统,最初由 Linux 操作系统内核的著名创建者 Linus Torvalds 于 2005 年开发。有海量软件项目依赖 Git 进行版本控制,包括商业项目和开源项目。使用过 Git 的开发人员在可用的软件开发人才库中占有很好的比例,它在各种操作系统和 IDE上都能很好地运行。

1.git的特点

目前世界上有非常多的版本控制软件,而这些软件大部分都是基于文件变更列表的方式存储信息,将它们存储的信息看作是一组基本文件和每个文件随时间逐步累积的差异,也可以认为这些版本控制软件本质上是比较文件的不同,具体的情况如下所示

image.png

而git与此不同,Git 更像是把数据看作是对小型文件系统的一系列快照。 在 Git 中,每当你提交更新或保存项目状态时,它基本上就会对当时的全部文件创建一个快照并保存这个快照的索引。这种做法的好处是如果文件没有出现修改的情况,那么就不需要再次重新存储这些文件。

image.png

2.git的一些基础概念:

我们在使用git进行操作经常会遇到一些概念,这里我们对这一些基础概念进行解释

  1. 仓库(Repository):Git 仓库是用来存储项目的地方,它包含了项目的所有历史记录和文件。一个仓库可以在本地计算机上或者远程服务器上。
  2. 分支(Branch):分支是指在 Git 中独立开发的一个线索。默认情况下,Git 创建一个主分支(通常称为 master 或 main),开发人员可以基于主分支创建新的分支来进行开发。每个分支都有自己的提交历史。
  3. 提交(Commit):提交是指对文件的一次更改。每次提交都有一个唯一的标识符(commit hash),可以用来查看提交历史和回退到特定的提交。提交包含了更改的文件和提交者的信息。
  4. 暂存区(Staging Area):暂存区是一个中间区域,用于暂时存放将要提交的文件。在修改文件后,可以使用命令将文件添加到暂存区,然后使用命令将暂存区的文件提交到仓库。
  5. 远程仓库(Remote Repository):远程仓库是指存储在网络上的 Git 仓库,可以与他人协同开发。通过克隆)或推送操作,可以将本地仓库与远程仓库进行同步。
  6. 克隆(Clone):克隆是指将远程仓库复制到本地,创建一个本地仓库的副本。通过克隆操作,可以获取远程仓库的所有历史记录和文件,并与远程仓库保持同步。
  7. 合并(Merge):合并是将两个或多个分支的更改合并为一个分支的过程。当开发人员在不同的分支上进行开发时,可以使用合并操作将一个分支的更改合并到另一个分支,以保持代码的一致性。
  8. 冲突(Conflict):冲突是指当两个分支对同一个文件进行了不同的更改,并且尝试合并时发生的问题。Git 无法自动解决冲突,需要开发人员手动修改文件来解决冲突。
  9. 撤销(Revert):撤销是指回退到之前的提交状态。在 Git 中,可以使用撤销操作来取消之前的提交,回滚到之前的版本。撤销可以针对单个提交或多个提交进行。
  10. 追踪(Tracking):追踪是指将文件添加到 Git 的版本控制中,以便跟踪文件的更改。使用命令可以将文件添加到 Git 的追踪列表中,然后可以将其提交到仓库。

3.git的常用指令

git的指令有很多,以下选取10个比较常用的指令进行介绍

  1. git init:初始化一个新的 Git 仓库。在项目目录中执行此命令,将创建一个空的 Git 仓库,用于版本控制你的项目。
  2. git clone <repository>:克隆一个远程仓库到本地。通过指定远程仓库的 URL 或路径,可以将远程仓库的内容复制到本地。
  3. git add <file>:将文件添加到暂存区。使用此命令可以将指定的文件或目录添加到 Git 的暂存区,准备进行提交。
  4. git commit -m <message>:提交暂存区的文件到仓库。使用此命令可以将暂存区的文件提交到 Git 仓库,并附带一条提交消息。
  5. git status:查看工作区和暂存区的状态。使用此命令可以查看当前工作区和暂存区的文件状态,了解哪些文件被修改或添加。
  6. git log:查看提交历史。使用此命令可以查看当前分支的提交历史,包括每次提交的作者、日期和提交消息。
  7. git branch:查看分支列表。使用此命令可以查看当前仓库中的所有分支,并标识当前所在的分支。
  8. git checkout <branch>:切换到指定分支。使用此命令可以切换到指定的分支,开始在该分支上进行开发或查看。
  9. git merge <branch>:合并指定分支到当前分支。使用此命令可以将指定的分支合并到当前分支,将两个分支的更改合并为一个。
  10. git push:推送本地仓库的更改到远程仓库。使用此命令可以将本地仓库的提交推送到远程仓库,与其他开发人员共享代码。
  11. git pull:从远程仓库拉取最新的更改。使用此命令可以从远程仓库拉取最新的提交,更新本地仓库的代码。
  12. git remote add <name> <url>:添加远程仓库。使用此命令可以将远程仓库的 URL 添加到本地仓库,并指定一个名称。

4.git的一般使用步骤

使用git进行版本控制,一般可以分为以下几个步骤

  1. 初始化仓库:
    在项目目录中执行 git init 命令,初始化一个新的 Git 仓库。
  2. 添加文件:
    使用 git add <file> 命令将需要进行版本控制的文件添加到暂存区。例如,执行 git add main.py 将 main.py 文件添加到暂存区。
  3. 提交更改:
    执行 git commit -m <message> 命令,将暂存区的文件提交到仓库。例如,执行 git commit -m "Add main.py" 将暂存区的文件提交到仓库,并附带一条提交消息。
  4. 查看状态:
    使用 git status 命令可以查看当前工作区和暂存区的状态。可以查看哪些文件被修改或添加。
  5. 查看提交历史:
    执行 git log 命令可以查看当前分支的提交历史。可以查看每次提交的作者、日期和提交消息。
  6. 创建分支:
    使用 git branch <branch> 命令可以创建一个新的分支。例如,执行 git branch feature 将创建一个名为 feature 的新分支。
  7. 切换分支:
    执行 git checkout <branch> 命令可以切换到指定的分支。例如,执行 git checkout feature 将切换到 feature 分支。
  8. 合并分支:
    当在一个分支上完成开发后,可以将其合并到主分支或其他分支。执行 git merge <branch> 命令可以将指定的分支合并到当前分支。例如,执行 git merge feature 将将 feature 分支合并到当前分支。
  9. 推送更改:
    使用 git push 命令可以将本地仓库的更改推送到远程仓库。例如,执行 git push origin main 将本地仓库的更改推送到名为 origin 的远程仓库的 main 分支。
  10. 拉取更改:
    当其他开发人员对远程仓库进行了更改时,可以使用 git pull 命令从远程仓库拉取最新的更改到本地仓库。