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

Git 基本操作

Git 的工作方式是保存项目的各个版本快照,方便后续比较和回溯。

本章将对有关创建与提交你的项目快照的命令作介绍,帮助您掌握版本控制的基础操作。

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

Git 工作流程图

Git 仓库的组成部分:

  • 工作区:直接编辑文件的目录,所有修改都发生在这里,但尚未被 Git 跟踪。
  • 暂存区:用git add将工作区的修改暂存到此区域,准备下次提交,是工作区和仓库的中间层。
  • 本地仓库:通过git commit将暂存区的更改永久保存到版本历史中,存储在.git目录下,包含所有提交记录。
  • 远程仓库:托管在服务器(如 GitHub、GitLab)上的云仓库,通过git push上传本地提交,或git pull同步他人更改。

下面是一个简单的 Git 命令操作实例:

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

创建仓库命令

Git 的工作始于创建一个仓库,仓库是 Git 用来存储项目文件和版本历史的地方。

✅ 下表列出了 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 采用三态文件管理机制,文件在工作目录中可能处于以下三种状态之一:

1. 已修改(Modified)

  • 文件已被修改但尚未暂存
  • 存在于工作目录中,尚未进入暂存区

2. 已暂存(Staged)

  • 修改后的文件已被标记,准备提交
  • 文件已添加到暂存区(Index/Stage)

3. 已提交(Committed)

  • 文件已安全地存储在本地仓库中
  • 文件的最新版本已被永久记录

文件状态的转换流程

未跟踪(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
发表评论