主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

Git 基本操作

Git 的核心功能是记录和管理项目文件的变更历史。它通过创建和存储项目在不同时间点的快照(commit)来实现版本控制,并允许开发者随时比较不同版本之间的差异。

本章将详细介绍用于创建项目快照和提交变更的基本 Git 命令,帮助您掌握版本控制的基础操作。

Git 常用的6个命令:git clonegit pushgit addgit commitgit checkoutgit pull,后面我们会详细介绍。

基本 Git 命令

解释说明:

✅ workspace:工作区

✅ staging area:暂存区/缓存区

✅ local repository:版本库或本地仓库

✅ remote repository:远程仓库

一个简单的操作步骤:

$ git init      # 初始化仓库
$ git add .     # 添加文件到暂存区
$ git commit    # 将暂存区内容添加到仓库中

创建仓库命令

下表列出了 git 创建仓库的命令:

命令 说明
git init 初始化仓库
git clone 拷贝一份远程仓库,也就是下载一个项目

提交与修改

Git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。

下表列出了有关创建与提交你的项目的快照的命令:

命令 说明
git add 添加文件到暂存区
git status 查看仓库当前的状态,显示有变更的文件。
git diff 比较文件的不同,即暂存区和工作区的差异。
git difftool 使用外部差异工具查看和比较文件的更改。
git range-diff 比较两个提交范围之间的差异。
git commit 提交暂存区到本地仓库。
git reset 回退版本。
git rm 将文件从暂存区和工作区中删除。
git mv 移动或重命名工作区文件。
git notes 添加注释。
git checkout 分支切换。
git switch(Git 2.23 版本引入) 更清晰地切换分支。
git restore(Git 2.23 版本引入) 恢复或撤销文件的更改。
git show 显示 Git 对象的详细信息。

下表列出了有关提交日志的命令:

命令 说明
git log 查看历史提交记录
git blame <file> 以列表形式查看指定文件的历史修改记录
git shortlog 生成简洁地提交日志摘要
git describe 生成一个可读的字符串,该字符串基于 Git 的标签系统来描述当前的提交

下表列出了有关远程操作的命令:

命令 说明
git remote 远程仓库操作
git fetch 从远程获取代码库
git pull 下载远程代码并合并
git push 上传远程代码并合并
git submodule 管理包含其他 Git 仓库的项目

Git 文件状态

Git 采用三态文件管理机制,文件在版本控制过程中会处于工作目录暂存区本地仓库三种状态之一。

工作目录(Working Directory)

工作目录是本地计算机上看到的项目文件,也是你直接操作文件的地方。在这里,你可以查看、编辑、删除或创建文件,所有的文件修改都会首先在工作目录中进行。

在工作目录中的文件可能有以下几种状态:

  • 未跟踪(Untracked):新创建的文件,未被 Git 记录。
  • 已修改(Modified):已被 Git 跟踪的文件发生了更改,但这些更改还没有被提交到 Git 记录中。

暂存区(Staging Area)

暂存区(又称索引,Index)是一个临时存储区域,用于存放准备提交到本地仓库的更改。你可以从工作目录中选择性地添加文件变更到暂存区,从而灵活控制每次提交的内容——这样既能一次性提交多个文件的修改,又不必强制提交所有变更。

  • 使用git add <filename>命令将文件从工作目录添加到暂存区。
  • 使用git add .命令将当前目录下的所有更改添加到暂存区。
git add <filename>  # 添加指定文件到暂存区
git add .           # 添加所有更改到暂存区

本地仓库(Local Repository)

本地仓库是一个隐藏在.git目录中的数据库,用于存储项目的所有提交历史记录。当你执行提交操作时,Git 会将暂存区中的变更内容永久保存到本地仓库,形成一个新的版本记录。

使用git commit -m "commit message"命令将暂存区中的更改提交到本地仓库。

git commit -m "commit message"  # 提交暂存区的更改到本地仓库

文件状态的转换流程

未跟踪(Untracked):新创建的文件最初是未跟踪的。它们存在于工作目录中,但没有被 Git 跟踪。

touch newfile.txt    # 创建一个新文件
git status           # 查看状态,显示 newfile.txt 未跟踪

已跟踪(Tracked):通过git add命令将未跟踪的文件添加到暂存区后,文件变为已跟踪状态。

git add newfile.txt  # 添加文件到暂存区
git status           # 查看状态,显示 newfile.txt 在暂存区

已修改(Modified):对已跟踪的文件进行更改后,这些更改会显示为已修改状态,但这些更改还未添加到暂存区。

echo "Hello, World!" > newfile.txt  # 修改文件
git status           # 查看状态,显示 newfile.txt 已修改

已暂存(Staged):使用git add命令将修改过的文件添加到暂存区后,文件进入已暂存状态,等待提交。

git add newfile.txt  # 添加文件到暂存区
git status           # 查看状态,显示 newfile.txt 已暂存

已提交(Committed):使用git commit命令将暂存区的更改提交到本地仓库,这些操作被记录下来,文件状态返回为已跟踪状态。

git commit -m "Added newfile.txt"  # 提交更改
git status           # 查看状态,工作目录干净


评论区 0
发表评论
教程介绍
Git 是一个分布式版本控制系统,用于高效管理文件的修改历史,支持多人协作开发。
6 章节
30 阅读
0 评论