Git 常用指令

[English]

备注

下文中出现的所有方括号([])中的内容均为用户根据实际情况自定义填写,不可直接照搬示例中的文字。

初始配置

首次使用 Git 时,需要配置用户名和邮箱,用于关联 commit 操作:

  • 设置用户名: git config --global user.name "[Your Name]"

  • 设置邮箱: git config --global user.email "[Your Email Address]"

其他常用配置:

  • 设置默认编辑器:git config --global core.editor "[Default Editor]"

  • 启用彩色命令行输出:git config --global color.ui auto

  • 修改默认分支名称:git config init.defaultBranch [New Name]

  • 查看所有配置:git config --list

配置 SSH 密钥

SSH 密钥是一种安全高效的身份验证方式,它通过加密技术在使用 Git 时实现免密码的远程连接。配置 SSH 密钥可以有效保护您的 Git 账号和代码安全,具体步骤如下:

  1. 生成 SSH 密钥

    • 按下 Win+R 组合键,打开“运行”窗口。

    • 输入 cmd 并按回车,打开命令提示符窗口。

    • 在命令提示符窗口中输入指令 ssh-keygen -t rsa -C '[Your Email Address]' 并按回车。

    • 再按三次回车,完成 SSH 公钥和私钥对的生成。

  2. 找到生成的 SSH 公钥

    • 打开用户目录:C:\Users\[Username]\.ssh ,其中 .pub 文件为 SSH 公钥。

    • 右键该 .pub 文件,选择“打开方式”并使用“记事本”或“VS Code”等文件编辑器查看。

    • 或者,也可以在命令提示符窗口中输入指令:notepad %USERPROFILE%\.ssh\id_rsa.pub 查看该文件。

  3. 将公钥配置到 Github 中

    • 登录 Github, 点击右侧头像后选择 Settings > SSH and GPG keys > New SSH key

    • 将上一步中的文本内容复制粘贴到 Key 文本框中。

    • Title 框中为该 SSH 密钥设置一个名字。

    • 点击 Add SSH key 完成 SSH 公钥的配置。

  4. 检查密钥是否配对成功

    • 在命令提示符窗口中输入指令:ssh -T git@github.com

    • 如果窗口显示 Hi your-username! You've successfully authenticated. 说明 SSH 密钥配置成功。

备注

  • 生成 SSH 密钥时,确保 -C 后的邮箱地址与 Github 账户绑定的邮箱一致。

  • 公钥与私钥的安全性非常重要,确保妥善保管您的私钥,切勿将其暴露或共享。

创建仓库

在项目开始前,需要在本地创建一个新仓库,然后将其推送至 Github。或者使用 clone 指令,复制一个现有的远程仓库到本地,并自动设置远程关联。

  • 初始化新仓库:git init

  • 克隆远程仓库:git clone [url]

获取仓库的 URL

如果想要克隆一个远程仓库,首先需要获取该仓库的 URL。具体步骤如下:
  1. 登录 Github,进入需要获取的仓库页面。

  2. 在仓库页面的右边,点击绿色的 Code 按钮,会弹出一个框显示仓库的 URL。

  3. 选择 URL 类型:

    • HTTPS : https://github.com/username/repository.git

    • SSH : git@github.com:username/repository.git (已配置 SSH 密钥时使用)

  4. 点击复制按钮或手动复制所选 URL 。

将更改添加到暂存区

add 指令用于将更改后的文件添加至 Git 暂存区,以此明确标记出即将提交的内容,从而实现对版本变更的精确控制和有序管理。

  • 添加指定文件到暂存区:git add [File]

  • 添加所有更改到暂存区:git add .

备注

使用 git add [File] 指令时,确保当前路径位于目标文件所在的目录中,或提供相对于当前目录的正确路径。

提交更改

commit 指令用于将已添加到暂存区的更改提交至本地仓库,相当于创建了一个“版本快照”,记录此次修改的内容和说明。

  • 提交并添加说明:git commit -m "[Description]"

备注

使用 commit 指令进行提交前必须先使用 add 指令将更改添加到暂存区。

查看状态

status 指令用于查看当前工作区和暂存区的状态,它可以显示当前所在分支,哪些文件被修改或删除,哪些文件已添加到暂存区,以及是否有未提交的更改或未跟踪的文件。

  • 查看详细的工作目录和暂存区状态:git status

  • 查看简短状态(简写格式):git status -s

查看历史提交

log 指令用于查看 Git 仓库的历史提交记录,包括提交作者、时间、提交信息和哈希值,是理解项目变更轨迹的重要工具。

  • 显示完整的提交历史:git log

  • 以单行形式显示每次提交:git log --oneline

  • 图形化显示分支和合并关系:git log --graph

  • 查看指定作者的提交:git log --author="[Author]"

  • 查看从指定时间至今的提交:git log --since="[Time]"

  • 查看提交文件的具体更改内容:git log -p

  • 查看提交中更改的文件及行数统计:git log --stat

  • 显示最近几条提交记录:git log -n [Number]

  • 查看指定文件的更改历史:git log [File Name]

查看更改

diff 指令用于比较 Git 中个阶段(工作区、暂存区、历史提交)之间的差异,它不会改变任何内容,仅用于查看代码的具体变更内容。

  • 比较工作区和暂存区的差异:git diff

  • 比较暂存区和上一次提交的差异:git diff --cached``或``git diff --staged

  • 比较工作区和最后一次提交的所有差异,包括已暂存和未暂存的更改:git diff HEAD

  • 比较两次提交之间的差异:git diff [commit1][commit2]

  • 比较两个分支之间的差异:git diff [branch1][branch2]

  • 查看某个文件的差异,默认为该文件的工作区和缓存区:git diff [File Name]

忽略文件

在 Git 中,忽略文件指 Git 不跟踪、不纳入版本控制的一类文件,例如临时文件、日志、编译生成物、系统缓存等。可以在项目根目录创建一个名为 .gitignore 的文件,再将需要忽略的文件或文件夹路径写入该文件。

  • 忽略所有日志:*.log

  • 忽略所有临时文件:temp/

  • 忽略所有 .exe 文件:*.exe

  • 忽略 VS Code 工作空间配置:.vscode/

  • 忽略某个文件:[File Name]

分支

在 Git 中,分支是一种并行开发机制,它是对代码开发历史的独立拷贝,允许在不干扰主分支的前提下开发新功能、测试、修复 bug。branch 指令是管理分支的主要命令,可用于查看、创建、删除分支等。

  1. 查看分支

    • 查看所有本地分支:git branch

  2. 创建/切换分支

    • 创建新分支,但不切换:git branch [Branch Name]

    • 切换到指定分支:git checkout [Branch Name]git switch [Branch Name]

    • 创建新分支并切换到该分支:git checkout -b [Branch Name]git switch -c [Branch Name]

  3. 删除分支

    • 删除已合并的分支:git branch -d [Branch Name]

    • 删除未合并的分支:git branch -D [Branch Name]

  4. 合并分支

    • 将指定分支合并到当前分支:git merge [Branch Name]

    • 合并并保留合并记录:git merge --no-ff [Branch Name]

    • 中止合并:git merge --abort

远程仓库协作

在 Git 中,远程仓库协作指多个开发者通过连接同一个 Git 仓库进行分布式协同开发的过程。

  • 查看远程仓库信息:git remote -v

  • 建立本地空仓库和指定远程仓库的关联:get remote add origin [url]

  • 获取远程仓库最新提交并合并:git pull origin [Branch Name]

  • 获取远程仓库更改但不合并:git fetch origin

  • 推送本地提交到远程仓库:git push origin [Branch Name]