当前位置: 首页 > news >正文

Git Bash 实战操作全解析:从初始化到版本管理的每一步细节

在学习 Git 时,光看理论不如动手实操。本文将逐行解析一份真实的 Git Bash 操作记录,从仓库初始化到版本回退、文件删除,带你吃透每一个命令的作用、背后的原理以及可能遇到的问题。无论你是 Git 新手还是想巩固基础的开发者,这份 “操作说明书” 都能帮你理清思路。

一、环境准备:什么是 Git Bash?

Git Bash 是 Windows 系统下的 Git 命令行工具,模拟了 Linux 终端的操作环境,支持大多数 Git 命令和 Linux 基础命令(如cdmkdirvim)。本文的所有操作均在 Git Bash 中完成,如果你用的是 Linux/Mac 终端,命令完全通用。

分布式版本控制系统( Distributed Version Control System,简称 DVCS )会把服务器上的代码仓库完整地镜像下来。这样每个人的电脑上都有一份完成的服务器代码仓库的镜像,任何一处协同工作用的服务器发生故障,事后都可以用个人的电脑上的镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份(见下图2)。我们可以看到电脑A与电脑B与服务器上的版本内容完全一致 

Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。这类系统(CVS,Subversion,Perforce,Bazaar 等等)每次记录有哪些文件作了更新,以及都更新了哪些行的什么内容,请看下图。

其他系统在每个版本中记录着各个文件的具体差异

Git 并不保存这些前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一链接。Git 的工作方式就像图 4 所示。

Git 保存每次更新时的文件快照

 Git的安装

Git支持LinuxWindowsMac系统,安装Git,可以到Git官方网站直接下载安装程序。

 Git仓库的基本概念和流程

什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。

    1. git仓库的基本概念
  1. 远程仓库(Remote):

也叫作资源库,是远程机器上的代码库,用于做不同版本库文件交换更新。如GitlabGitHubgitee

  1. 本地库(Repository):

是用户在本地创建的目录,拥有远程库的一个快照,由工作区和版本库构成。

  • 工作区(Workspace):

本地库的根目录中除.git目录以外的内容,存储内容的实际文件。

  • 暂存区(stage/Index):

也叫做缓存区,暂存信息存放在.git目录"下的index文件(.git/index)中,用于临时保存内容的修改;

  • 版本库(.git目录)

是本地库的根目录中的一个隐藏目录.git,用于记录版本信息,Git进行版本控制所需要的文件,则都放在.git文件夹中;

  1. 分支(Branch):

本地库中默认创建一个主(master)分支,分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

本地库和远程库的关系

 开发人员通过Git命令来管理代码,最常用的6个命令如下图所示:

 git仓库的工作流程

从一般开发者的角度来看,使用Git的工作流程是:

  1. 克隆远程库:从远程库上克隆完整的Git仓库(包括代码和版本信息)到本地;
  2. 在本地库上修改代码:在本地库上根据不同的开发目的,创建分支,修改代码;
  3. 提交到分支:在本地分支上提交代码;
  4. 把修改合并到本地主分支:在本地库上提交更新,也就是说,把修改合并到本地主分支;
  5. 把远程库合并到本地主分支:把远程库上的最新代码fetch下来,跟本地主分支合并,如果存在冲突,那么解决冲突。
  6. 把本地主分支提交到远程库:生成补丁(patch),把补丁发送给远程库。

二、操作解析:从 0 开始的 Git 仓库管理

步骤 1:创建并进入项目目录(工作区初始化)

DELL@DESKTOP-U4905V0 MINGW64 /d
$ mkdir gitTest && cd gitTest

操作目的
创建一个名为gitTest的文件夹作为项目目录(即 Git 的 “工作区”),并进入该目录。

背景知识
工作区是我们编写代码的地方,所有可见的文件 / 文件夹都在这里。后续的 Git 操作都需要在工作区目录下执行。

步骤 2:初始化 Git 仓库(本地仓库创建)

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest
$ git init
Initialized empty Git repository in D:/gitTest/.git/

操作目的
通过git init命令将gitTest目录初始化为 Git 仓库。

执行结果
目录下生成一个隐藏的.git文件夹(可通过ls -a查看),这是 Git 的 “本地仓库” 核心目录,存储了所有版本记录、分支信息、配置等关键数据。

注意
.git目录是 Git 的 “大脑”,绝对不要手动修改或删除里面的文件,否则可能导致仓库损坏。

步骤 3:查看本地仓库的核心文件

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest
$ cd .gitDELL@DESKTOP-U4905V0 MINGW64 /d/gitTest/.git (GIT_DIR!)
$ ls
HEAD  config  description  hooks/  info/  objects/  refs/DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest/.git (GIT_DIR!)
$ ll
total 7
-rw-r--r-- 1 DELL 197121  23 Jul 15 16:24 HEAD
-rw-r--r-- 1 DELL 197121 130 Jul 15 16:24 config
-rw-r--r-- 1 DELL 197121  73 Jul 15 16:24 description
drwxr-xr-x 1 DELL 197121   0 Jul 15 16:24 hooks/
drwxr-xr-x 1 DELL 197121   0 Jul 15 16:24 info/
drwxr-xr-x 1 DELL 197121   0 Jul 15 16:24 objects/
drwxr-xr-x 1 DELL 197121   0 Jul 15 16:24 refs/

操作目的
进入.git目录,查看 Git 仓库的核心文件。

文件说明

  • HEAD:指向当前所在的分支(默认是master分支)。
  • config:仓库的配置文件(如用户信息、远程仓库地址)。
  • objects/:存储所有文件的快照(版本数据)。
  • refs/:存储分支和标签的指针(指向具体的版本)。
  • hooks/:存放钩子脚本(如提交前自动检查代码的脚本)。

注意
.git目录是 Git 自动管理的,手动修改可能导致仓库损坏,看完后建议通过cd ..回到工作区。

步骤 4:创建第一个文件并查看状态

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ vim Hello.java

操作目的
vim编辑器创建一个Hello.java文件(Java 代码示例)。

// Hello.java内容
public class Hello{public static void main(String[] args){System.out.println("hello world");}
}

保存退出后,查看文件状态:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
On branch master
No commits yet
Untracked files:(use "git add <file>..." to include in what will be committed)Hello.java
nothing added to commit but untracked files present (use "git add" to track)

操作目的
git status查看工作区文件的状态。

结果解析

  • Untracked files(未跟踪文件):Hello.java存在于工作区,但未被 Git 纳入管理(Git 不知道它的存在)。
  • 提示use "git add <file>...":告诉我们需要通过git add命令将文件加入暂存区。

步骤 5:将文件添加到暂存区

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git add .
warning: in the working copy of 'Hello.java', LF will be replaced by CRLF the next time Git touches it

操作目的
git add .将工作区所有未跟踪的文件添加到暂存区(.(点)表示当前目录下所有文件)。

警告说明
LF will be replaced by CRLF是 Windows 系统特有的换行符警告:

  • Linux/Mac 使用LF(\n)作为换行符,Windows 使用CRLF(\r\n)。
  • Git 默认会在提交时将LF转换为CRLF,检出时再转回LF,避免跨平台协作时的换行符冲突。
  • 该警告不影响功能,可忽略(若想关闭,可配置git config --global core.autocrlf false)。

添加后再次查看状态:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
On branch master
No commits yet
Changes to be committed:(use "git rm --cached <file>..." to unstage)new file:   Hello.java

结果解析

  • Changes to be committed(待提交的变更):Hello.java已从工作区进入暂存区,等待被提交到本地仓库。
  • 提示use "git rm --cached <file>...":若想将文件从暂存区撤回工作区,可执行该命令。

步骤 6:提交文件到本地仓库

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git commit -m ”yby第一次上传“
[master (root-commit) 993e445] ”yby第一次上传“1 file changed, 7 insertions(+)create mode 100644 Hello.java

操作目的
git commit -m "注释"将暂存区的文件提交到本地仓库。

参数说明

  • -m:指定提交注释(必须填写,用于描述本次提交的内容,如 “初始化 Hello.java”)。
  • (root-commit):表示这是仓库的第一次提交(根提交),生成了第一个版本。
  • 993e445:本次提交的版本号(哈希值,唯一标识该版本)。
  • 1 file changed, 7 insertions(+):提交了 1 个文件,新增 7 行内容。

提交后查看状态:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
On branch master
nothing to commit, working tree clean

结果解析
working tree clean表示工作区和暂存区都没有未提交的变更,当前状态 “干净”。

步骤 7:配置用户信息(首次提交前必做)

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git config --global -l
user.name=yby6666
user.email=3373746802@qq.com
...

操作目的
git config --global -l查看全局配置(-l--list的缩写)。

为什么需要配置?
Git 每次提交都需要记录作者信息(用于多人协作时区分是谁提交的),首次使用需配置:

git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

--global表示全局配置(所有仓库生效),若只想配置当前仓库,去掉--global即可。

步骤 8:批量创建文件并管理多个变更

# 创建Test.txt、Test1.txt、Test2.txt、Test3.txt、Test4.txt、Test5.txt
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ vim Test.txt
$ vim Test1.txt
$ vim Test2.txt
$ vim Test3.txt
$ vim Test4.txt
$ vim Test5.txt

创建后查看状态:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
On branch master
Untracked files:(use "git add <file>..." to include in what will be committed)Test.txtTest1.txtTest2.txtTest3.txtTest4.txtTest5.txt

场景说明
实际开发中经常需要同时管理多个文件,这里模拟创建 6 个测试文件,演示批量操作。

8.1 部分文件添加到暂存区
# 添加Test.txt到暂存区
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git add Test.txt
warning: in the working copy of 'Test.txt', LF will be replaced by CRLF...# 再添加Test1.txt和Test2.txt
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git add Test1.txt Test2.txt
warning: in the working copy of 'Test1.txt', LF will be replaced by CRLF...

查看状态:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
Changes to be committed:(use "git restore --staged <file>..." to unstage)new file:   Test.txtnew file:   Test1.txtnew file:   Test2.txt
Untracked files:(use "git add <file>..." to include in what will be committed)Test3.txtTest4.txtTest5.txt

解析

  • 已添加的文件(Test.txt、Test1.txt、Test2.txt)在 “待提交” 区。
  • 未添加的文件(Test3.txt 等)仍在 “未跟踪” 区。
8.2 剩余文件批量添加到暂存区
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git add .  # 添加所有未跟踪的文件
warning: in the working copy of 'Test3.txt', LF will be replaced by CRLF...

查看状态:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
Changes to be committed:(use "git restore --staged <file>..." to unstage)new file:   Test.txtnew file:   Test1.txtnew file:   Test2.txtnew file:   Test3.txtnew file:   Test4.txtnew file:   Test5.txt

技巧

  • git add <file1> <file2>:添加指定的多个文件。
  • git add .:添加当前目录下所有变更(包括修改、新增文件),但不包括删除的文件。
  • git add -u:添加所有已跟踪文件的修改(不包括新增文件)。
8.3 从暂存区移除文件
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git rm --cached Test.txt
rm 'Test.txt'

操作目的
git rm --cached Test.txtTest.txt从暂存区撤回工作区(--cached表示只操作暂存区,不删除工作区文件)。

查看状态:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
Changes to be committed:(use "git restore --staged <file>..." to unstage)new file:   Test1.txtnew file:   Test2.txtnew file:   Test3.txtnew file:   Test4.txtnew file:   Test5.txt
Untracked files:(use "git add <file>..." to include in what will be committed)Test.txt

解析
Test.txt从 “待提交” 区回到 “未跟踪” 区,若想重新添加,执行git add Test.txt即可。

8.4 最终提交所有文件
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git add .  # 重新添加Test.txt
$ git commit -m ”yby第一次上传“
[master 34d5f6b] ”yby第一次上传“6 files changed, 6 insertions(+)create mode 100644 Test.txtcreate mode 100644 Test1.txtcreate mode 100644 Test2.txtcreate mode 100644 Test3.txtcreate mode 100644 Test4.txtcreate mode 100644 Test5.txt

注意
这里提交注释和第一次重复了,实际开发中建议注释清晰区分(如 “添加 6 个测试文件”),方便后续查看历史。

步骤 9:修改文件并提交更新

# 修改Test.txt(如添加一行“yby6666”)
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ vim Test.txt# 查看状态
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
On branch master
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified:   Test.txt

解析
modified: Test.txt表示文件已被修改,但修改只在工作区,未进入暂存区。

提交修改:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git add .
$ git commit -m ”yby第二传“
[master 98df6bf] ”yby第二传“1 file changed, 1 insertion(+), 1 deletion(-)

解析

  • 1 insertion(+), 1 deletion(-):表示本次修改新增 1 行、删除 1 行(可能是替换了内容)。
  • 每次提交都会生成一个新的版本号(这里是98df6bf),用于标识该版本。

步骤 10:版本回退:回到过去的版本

10.1 查看历史版本
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git log
commit 98df6bf3e41c7b024531269bb3322f61ece18dac (HEAD -> master)
Author: yby6666 <3373746802@qq.com>
Date:   Tue Jul 15 16:49:08 2025 +0800”yby第二传“commit 34d5f6b8b4f448f85edb079bc83d6ff92c17ab58
Author: yby6666 <3373746802@qq.com>
Date:   Tue Jul 15 16:48:00 2025 +0800”yby第一次上传“commit 993e445fd132feadfb68afd88d733a2c753fddf3
Author: yby6666 <3373746802@qq.com>
Date:   Tue Jul 15 16:34:30 2025 +0800”yby第一次上传“

解析
git log显示从近到远的提交记录,包含

  • 版本号(98df6bf...
  • 作者(Author
  • 提交时间(Date
  • 注释(”yby第二传“

简化输出(只显示版本号和注释):

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git log --pretty=oneline
98df6bf3e41c7b024531269bb3322f61ece18dac (HEAD -> master) ”yby第二传“
34d5f6b8b4f448f85edb079bc83d6ff92c17ab58 ”yby第一次上传“
993e445fd132feadfb68afd88d733a2c753fddf3 ”yby第一次上传“

(HEAD -> master)表示当前HEAD指针指向master分支的98df6bf版本(最新版本)。

10.2 回退到上一个版本
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git reset --hard HEAD^
HEAD is now at 34d5f6b ”yby第一次上传“

解析

  • git reset --hard:强制回退版本(--hard表示工作区、暂存区、本地仓库的内容都同步到目标版本)。
  • HEAD^HEAD是当前版本的指针,HEAD^表示上一个版本,HEAD^^表示上上个版本,HEAD~100表示上 100 个版本。

回退后查看Test.txt内容:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ cat Test.txt
yby6666  # 此时内容是第一次提交后的状态,最新修改已被回退
10.3 回退到指定版本

bash

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git reset --hard 993e44
HEAD is now at 993e445 ”yby第一次上传“

解析
通过版本号的前几位(993e44)回退到初始版本(只需输入能唯一标识版本的前几位即可,不用输完整哈希值)。

回退后查看文件列表:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ ll -a
total 21
drwxr-xr-x 1 DELL 197121   0 Jul 15 17:00 ./
drwxr-xr-x 1 DELL 197121   0 Jul 15 16:26 ../
drwxr-xr-x 1 DELL 197121   0 Jul 15 17:00 .git/
-rw-r--r-- 1 DELL 197121 105 Jul 15 16:31 Hello.java

此时Test.txt等文件已消失,因为初始版本中没有这些文件 —— 这就是--hard的作用:工作区文件会被目标版本的内容覆盖。

10.4 恢复到回退前的新版本

如果回退后想恢复到最新版本,但已记不清版本号,可通过git reflog查看所有操作记录:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git reflog
993e445 (HEAD -> master) HEAD@{0}: reset: moving to 993e44
34d5f6b HEAD@{1}: reset: moving to HEAD^
98df6bf HEAD@{2}: commit: ”yby第二传“
34d5f6b HEAD@{3}: commit: ”yby第一次上传“
993e445 (HEAD -> master) HEAD@{4}: commit (initial): ”yby第一次上传“

git reflog记录了所有分支的操作历史(包括回退、提交、切换分支),这里98df6bf是回退前的新版本号,执行以下命令恢复:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git reset --hard 98df6bf
HEAD is now at 98df6bf ”yby第二传“

步骤 11:删除文件与撤销删除

11.1 删除文件并提交
# 删除工作区的Test.txt
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ rm Test.txt# 查看状态
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git status
On branch master
Changes not staged for commit:(use "git add/rm <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)deleted:    Test.txt# 将删除操作添加到暂存区
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git rm Test.txt  # 等价于git add Test.txt(因为文件已删除)
rm 'Test.txt'# 提交删除
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git commit -m "delete Test.txt"
[master ...] delete Test.txt1 file changed, 0 insertions(+), 0 deletions(-)delete mode 100644 Test.txt
11.2 撤销删除(未提交时)

如果误删了文件,且未提交删除操作,可通过git restore恢复:

# 若已执行git rm但未commit,先将文件从暂存区撤回工作区
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git reset HEAD Test.txt  # 从暂存区撤回工作区
Unstaged changes after reset:
D       Test.txt# 恢复文件(从本地仓库的最新版本)
DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git restore Test.txt  # 等价于git checkout -- Test.txt

解析
git restore <file>会从本地仓库的最新版本中复制文件到工作区,覆盖当前的删除 / 修改。

步骤 12:常见错误示例

在操作中难免会输入错误命令,比如:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git plg
git: 'plg' is not a git command. See 'git --help'.
The most similar command ispull

错误原因
输入了不存在的命令git plg(可能是想输入git log),Git 会提示最相似的命令(pull),帮助排查错误。

另一个常见错误是提交时使用中文引号:

DELL@DESKTOP-U4905V0 MINGW64 /d/gitTest (master)
$ git commit -m ”Test提交“  # 用了中文的”“而非英文的""
error: pathspec '提交“' did not match any file(s) known to git

解决:提交注释必须用英文引号"",如git commit -m "Test提交"

三、总结:Git 工作流程核心梳理

通过以上操作,我们可以总结出 Git 管理文件的核心流程:

工作区(编写文件) → git add → 暂存区(临时存储) → git commit → 本地仓库(版本记录)

关键命令回顾:

操作场景命令作用
初始化仓库git init创建本地仓库(生成.git目录)
查看状态git status查看工作区 / 暂存区的文件状态
添加到暂存区git add <file> 或 git add .将工作区文件添加到暂存区
提交到本地仓库git commit -m "注释"将暂存区文件提交到本地仓库
查看历史记录git log 或 git log --pretty=oneline查看提交历史
版本回退git reset --hard <版本号/HEAD^>回退到指定版本
查看所有操作记录git reflog包括已回退的版本,用于恢复新版本
撤销工作区修改git restore <file>从暂存区 / 本地仓库恢复文件
从暂存区撤回文件git restore --staged <file>将文件从暂存区退回工作区

Git 的强大之处在于对版本的精准控制和本地操作的高效性。掌握这些基础命令后,你可以进一步学习分支管理(git branchgit checkout)、远程仓库协作(git clonegit pushgit pull)等高级功能。记住,最好的学习方式是多动手 —— 创建一个测试仓库,反复练习本文的操作,你会对 Git 的理解更加深刻!

Git 配置信息(Config)详解:级别、操作与优先级

Git 的配置系统是其灵活运行的核心,通过git config命令可自定义 Git 的行为偏好。配置信息按生效范围分为不同级别,且遵循严格的优先级规则。以下是对 Git 配置体系的详细总结:

一、配置级别与对应文件

Git 的配置分为 3 个级别,从高到低分别为:

配置级别生效范围对应配置文件路径说明
仓库级别(local)仅当前仓库有效当前仓库目录下的 .git/config优先级最高,会覆盖用户级和系统级的同名配置
用户级别(global)当前用户的所有仓库有效用户宿主目录下的 ~/.gitconfig(Linux/Mac)或 C:\Users\用户名\.gitconfig(Windows)优先级次之,覆盖系统级配置
系统级别(system)系统中所有用户及仓库有效Git 安装目录下的 /etc/gitconfig(Linux/Mac)或 Git安装路径/etc/gitconfig(Windows)优先级最低,对系统内所有用户生效

二、配置信息的查看

通过git config命令配合不同选项,可查看对应级别的配置:

命令作用
git config --local -l查看当前仓库(local)的所有配置
git config --global -l查看当前用户(global)的所有配置
git config --system -l查看系统级(system)的所有配置

注:-l 是 --list 的缩写,用于列出所有配置项。

三、配置信息的修改

修改配置需使用git config命令,并指定级别(默认是仓库级)。不建议手动编辑配置文件,避免格式错误导致 Git 异常。

示例:修改用户名和邮箱(最常用配置)

# 修改用户级(global)的用户名
git config --global user.name "你的用户名"# 修改用户级(global)的邮箱
git config --global user.email "你的邮箱"
  • 若需修改仓库级配置,将--global替换为--local(仅对当前仓库生效)。
  • 若需修改系统级配置,将--global替换为--system(通常需要管理员权限)。

四、配置的优先级规则

Git 加载配置时,会按以下顺序查找并应用配置,后加载的配置会覆盖先加载的同名配置
系统级(system)→ 用户级(global)→ 仓库级(local)

即:

  • 仓库级配置(local)优先级最高,若与用户级 / 系统级配置冲突,以仓库级为准;
  • 用户级配置(global)次之,若与系统级配置冲突,以用户级为准;
  • 系统级配置(system)优先级最低,仅在没有用户级和仓库级配置时生效。

http://www.lryc.cn/news/589490.html

相关文章:

  • Spring Boot 启动原理揭秘:从 main 方法到自动装配
  • c#进阶之数据结构(字符串篇)----String
  • HTTP常见误区
  • 跨平台移动开发技术深度分析:uni-app、React Native与Flutter的迁移成本、性能、场景与前景
  • 【网络安全】大型语言模型(LLMs)及其应用的红队演练指南
  • 物联网系统中MQTT设备数据的保存方法
  • 闲庭信步使用图像验证平台加速FPGA的开发:第十七课——图像高斯滤波的FPGA实现
  • 基于Langchain4j开发AI编程助手
  • 无人机GPS定位系统核心技术解析
  • 图像的读入、显示、保存和图像文件显示
  • 笔试——Day9
  • IMU 能为无人机提供什么数据?
  • 北京-4年功能测试2年空窗-报培训班学测开-第五十一天
  • 快速通关二叉树秘籍(下)
  • Rocky Linux 9 源码包安装php8
  • ChatTongyi × LangChain:开启多模态AI应用创新之门
  • 共射级放大电路的频率响应Multisim电路仿真——硬件工程师笔记
  • 50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | DoubleClickHeart(双击爱心)
  • [设计模式]C++单例模式的几种写法以及通用模板
  • Kubernetes 架构原理与集群环境部署
  • 降本增效!自动化UI测试平台TestComplete并行测试亮点
  • 2025最新国产用例管理工具评测:Gitee Test、禅道、蓝凌测试、TestOps 哪家更懂研发协同?
  • ESLint 除了在packages.json还能在哪里配置?
  • 实测两款效率工具:驾考刷题和证件照处理的免费方案
  • CF37E Trial for Chief 题解
  • 【LeetCode 热题 100】226. 翻转二叉树——DFS
  • Python 数据建模与分析项目实战预备 Day 6 - 多模型对比与交叉验证验证策略
  • Zookeeper入门安装与使用详解
  • CAS单点登录架构详解
  • 关于实习的经验贴