惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
L
LINUX DO - 最新话题
罗磊的独立博客
IT之家
IT之家
阮一峰的网络日志
阮一峰的网络日志
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
H
Hacker News: Front Page
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The Hacker News
The Hacker News
Recent Commits to openclaw:main
Recent Commits to openclaw:main
大猫的无限游戏
大猫的无限游戏
PCI Perspectives
PCI Perspectives
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Proofpoint News Feed
NISL@THU
NISL@THU
小众软件
小众软件
S
Security Affairs
腾讯CDC
人人都是产品经理
人人都是产品经理
C
Check Point Blog
The GitHub Blog
The GitHub Blog
有赞技术团队
有赞技术团队
Forbes - Security
Forbes - Security
Project Zero
Project Zero
G
Google Developers Blog
博客园 - 三生石上(FineUI控件)
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
博客园_首页
Jina AI
Jina AI
The Cloudflare Blog
C
Cisco Blogs
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
L
Lohrmann on Cybersecurity
Y
Y Combinator Blog
W
WeLiveSecurity
V
Visual Studio Blog
Scott Helme
Scott Helme
N
News | PayPal Newsroom
I
Intezer
C
CXSECURITY Database RSS Feed - CXSecurity.com
Attack and Defense Labs
Attack and Defense Labs
Spread Privacy
Spread Privacy
Webroot Blog
Webroot Blog
T
Threatpost
雷峰网
雷峰网
MongoDB | Blog
MongoDB | Blog
N
News and Events Feed by Topic

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间 在WSL2中安装CUDA支持 | 泠泫凝的异次元空间 MinIO 集群部署 | 泠泫凝的异次元空间 vmware 虚拟化平台备份工具 Veeam 12 安装及配置 ubuntu 24.04 安装 nVidia 驱动后网卡消失 XMRig 自编译 | 泠泫凝的异次元空间 云桌面通过组策略统一体验配置 | 泠泫凝的异次元空间 Fortigate SSLVPN 无法连接内网 VNC 服务器 CentOS 7 使用镜像作为本地源并将自身作为YUM源服务器 | 泠泫凝的异次元空间 CentOS 7 离线更新 OpenSSH 服务 使用KubeKey离线部署Kubernetes | 泠泫凝的异次元空间 使用PGP对消息进行签名 | 泠泫凝的异次元空间 禁止MinIO展示桶内文件列表 | 泠泫凝的异次元空间 华为 Fusion Access 云桌面部署 | 泠泫凝的异次元空间 vmware Horizon 模板机部署 | 泠泫凝的异次元空间 vmware Horizon 云桌面与云应用部署 | 泠泫凝的异次元空间 Citrix XenApp 云应用交付 | 泠泫凝的异次元空间 Citrix XenDesktop 云桌面部署 | 泠泫凝的异次元空间 PVE LVM 扩容 | 泠泫凝的异次元空间 Linux 网络聚合(bond方式) | 泠泫凝的异次元空间 Citrix XenServer 7.2 部署教程 | 泠泫凝的异次元空间 在 Windows Server 2019 上安装 AMD 显卡驱动 openEuler 安装并使用 EPEL 源 | 泠泫凝的异次元空间 从已有Linux系统创建带桌面环境的Docker镜像 | 泠泫凝的异次元空间 下载联想原厂镜像及解密 | 泠泫凝的异次元空间 在基于 arm 架构的服务器上安装 PVE | 泠泫凝的异次元空间 自制 EVE-NG 镜像 | 泠泫凝的异次元空间 不使用 Snap 在 ubuntu 上安装 Chromium 浏览器 Fortigate 6.2 固件从 PPPoE 获得 IPv6 地址 Fortigate 手记 | 泠泫凝的异次元空间 Fortigate 通过命令行自定义 NTP 服务器 | 泠泫凝的异次元空间 arm 架构 CentOS 7 安装 MySQL 5.7 版本 ubuntu 20 安装计算卡驱动和 CUDA Toolkit 锐捷诺客云添加设备后一直显示“等待同步” | 泠泫凝的异次元空间 Windows 10 自动登录 | 泠泫凝的异次元空间 OpenWRT IPv6 防火墙设置 | 泠泫凝的异次元空间 k8s 部署踩坑合集 | 泠泫凝的异次元空间 改变 Ubuntu TTY 终端字体 | 泠泫凝的异次元空间 Parted 无损扩容磁盘分区 | 泠泫凝的异次元空间 NTP服务器测试 | 泠泫凝的异次元空间 【相亲相爱】2024祝大家!新年快乐!!! ESXi中重新挂载数据盘 | 泠泫凝的异次元空间 使用 MediaMTX + RTSP 搭建低延迟直播服务器 Firewalld 手记 | 泠泫凝的异次元空间 Ubuntu 上不使用 snapd 安装 Firefox 在 armbian 上安装 xfce 和 VNC 做远程桌面 在 ubuntu 20 上使用 TigerVNC 做远程桌面 在 openEuler 上部署安装 openGauss | 泠泫凝的异次元空间 Wireguard 组网笔记 | 泠泫凝的异次元空间 让特定IP(段)走VPN连接 | 泠泫凝的异次元空间 在Wireguard中排除部分IP(段) | 泠泫凝的异次元空间 CentOS 7 上升级 OpenSSL | 泠泫凝的异次元空间 将黑群晖部署到ESXi(笔记) | 泠泫凝的异次元空间 apk 代码反编译笔记 | 泠泫凝的异次元空间 Windows 搭建 iSCSI 服务器全攻略 | 泠泫凝的异次元空间 CentOS 7 编译安装 Python 3 开源语音识别工具 Whisper | 泠泫凝的异次元空间 Ubuntu 下 Python 编译安装及关联问题解决 | 泠泫凝的异次元空间 Ansible Tower 安装 | 泠泫凝的异次元空间 提高 PowerPoint 导出到图片时的分辨率 | 泠泫凝的异次元空间 利用亚马逊云服务器和VPC 构建安全可靠的虚拟网络 | 泠泫凝的异次元空间 Windows Server 多网卡链路聚合 | 泠泫凝的异次元空间 MT3000路由+移远EC20模块体验 | 泠泫凝的异次元空间 Python安装依赖时出现ctype问题 | 泠泫凝的异次元空间 GL-MT3000日用设置 | 泠泫凝的异次元空间 解除 vCenter 的最低内存限制 | 泠泫凝的异次元空间 跳过Windows 11的强制联网和账户登录 | 泠泫凝的异次元空间 Cloudflare Trace API 信息详解 | 泠泫凝的异次元空间 在CentOS中搭建由nginx反代和Apache2作为后端的Wordpress | 泠泫凝的异次元空间 通过nginx进行文件共享 | 泠泫凝的异次元空间 禁用 sudo 时密码认证 | 泠泫凝的异次元空间
Git实用操作指南 | 泠泫凝的异次元空间
Lxn's Area · 2022-03-05 · via 泠泫凝的异次元空间

使用的Git及各Git平台操作指南

本地Git连接到Github

创建SSH Key。

在bash界面执行如下指令,创建一个新的SSH Key。

如果之前有创建过,则无需重复创建。一般Windows的Key存放位置为C:\Users\<User Name>\.ssh;Linux的Key存放位置为用户HOME文件夹下的.ssh文件夹内。

<comment>处可以填写你注册Github的邮箱。

1
ssh-keygen -t rsa -C "<comment>"

在Github上登记你的Key

用文本编辑软件打开上个步骤创建的Pub Key(id_rsa.pub)文件,将整个文件内容复制出来。

打开Github,登录后打开SSH and GPG keys ,右上角点选New SSH KeyTitle填写该Key的备注,然后将刚才整个复制出来的文本全部粘贴到下方的Key文本框里面,点击Add SSH Key即可。

在BitBucket上登记你的Key

用文本编辑软件打开上个步骤创建的Pub Key(id_rsa.pub)文件,将整个文件内容复制出来。

打开BitBucket,登录后打开SSH keys ,点击Add KeyTitle填写该Key的备注,然后将刚才整个复制出来的文本全部粘贴到下方的Key文本框里面,点击Add SSH Key即可。

本地尝试登录(Github)

输入ssh -T git@github.com后按回车。

出现hi + 你的用户名等字样说明密钥验证通过了,可以正常使用了。

本地尝试登录(BitBucket)

输入ssh -T git@bitbucket.com后按回车。

出现You can use git to connect to Bitbucket. Shell access is disabled字样说明密钥验证通过了,可以正常使用了。

本地尝试登录(Coding)

输入ssh -T git@e.coding.net后按回车,若登录成功则会返回如下消息:

1
2
3
CODING 提示: Hello xxx, You've connected to coding.net via SSH. This is a Personal Key.
xxx,你好,你已经通过 SSH 协议认证 coding.net 服务,这是一个个人公钥.
公钥指纹:

对于 Coding 无法登录和Permission Denied等问题请查看本站文章 无法通过 ssh 登录到 Coding 的解决方法

设置本地username和email

1
2
git config --global user.name "Github用户名"
git config --global user.email "Github注册邮箱"

使用 Access Token 登录

首先申请Access Token,在浏览器打开Personal access tokens,右上角选择“Generate new token (classic)”,设置备注和过期日期,然后选择权限,最后Generate Token,保存展示的Token,该Token只会展示一次,如果已经忘记或者没有保存则需要重新创建。

使用时将Token添加进Git链接中即可:

1
git remote add origin https://<your token>@github.com/<your account>/<your repository>.git

如果本地已经有仓库和更改则可以更新Git链接:

1
2
3
4
5
6
7

git remote remove origin

git remote -v

git remote add origin https://<your token>@github.com/<your account>/<your repository>.git

在这一节中,http://127.0.0.1:1111 指代你的代理服务器;
本节内容均以 Github 为例。

全局代理

不推荐使用全局代理,因为可能会出现配置不生效的情况以及其他国内托管平台也走代理的情况。

1
2
3
4
5
6

git config --global http.proxy http://127.0.0.1:1111
git config --global https.proxy https://127.0.0.1:1111

git config --global http.proxy socks5://127.0.0.1:1111
git config --global https.proxy socks5://127.0.0.1:1111

部分代理

部分代理是指在 gitconfig 中设置指定的域名走代理,Windows 的 Git 配置文件在"C:\Users\<Username>\.gitconfig",Linux 的 Git 配置文件在~/.gitconfig

若上述文件不存在则在对应位置创建该文件即可,注意该文件的默认换行符是Unix (LF)而非Windows (CR LF)

添加部分代理的方法也很简单,打开上述文件,在文件末尾添加:

1
2
[http "https://github.com"]
proxy = http://127.0.0.1:1111

http后面的参数为你想代理的服务器地址,例如 Coding 则为https://e.coding.netProxy则为你的代理服务器地址。

代理需要认证

将代理服务器地址部分更改为如下:

1
http://127.0.0.1:1111 -> https://username:password@127.0.0.1:1111

关联远程仓库

使用ssh协议的优点很明显:阻断不至于很强,速度比较快;但缺点也很明显:需要提前认证、在部分公司网络中可能会被防火墙拦截。

Github

新建空文件夹,打开Git Bash,输入git init即可创建本地仓库。

打开Github上仓库的主页面,点选右上角绿色Code按钮,国内用户(如遇HTTPS方式访问受阻)选择SSH,复制下方文本框内容待用。

回到刚才的Git Bash,输入git remote add origin <仓库地址>回车即可。

仓库地址示例:
HTTPS: https://github.com/user/repo.git
SSH: git@github.com:user/repo.git

Github改版后本地还需更改branch,执行git branch -M main即可。

BitBucket

新建空文件夹,打开Git Bash,输入git init即可创建本地仓库。

打开Bitbucket上仓库的主页面,点选右上角Clone按钮,国内用户(如遇HTTPS方式访问受阻)选择SSH,复制下方文本框内git clone后面的内容待用。

回到刚才的Git Bash,输入git remote add origin <仓库地址>回车即可。

仓库地址示例:
HTTPS: https://user-admin@bitbucket.org/user/repo.git
SSH: git@bitbucket.org:user/repo.git

多远程仓库

当一个本地代码仓库需要同时同步到多个远程仓库时就需要设置多远程仓库(例如同时上传到Github、Bitbucket和coding)。

在已有的仓库里面执行如下命令即可。

1
git remote set-url --add origin <远程仓库地址>

提交

正常提交

  1. git add .添加所有文件(除.gitignore所含项外的)作为需要提交的文件。
  2. git commit -m "Messages"添加提交注释,引号内为注释内容。
  3. git push -u origin <branch>推送提交至远程仓库。视实际情况决定branch,一般Github为main

若遇到error: failed to push some refs to等字样内容可能是远程内容与本地内容存在差异,可尝试先pull再push;或者在上面第三条命令最后加上-f参数强制提交,但所有远程内容都会被清除并强制与本地内容保持一致

修改上次 Commit 信息

1
git commit --amend 

删除未Push的Commit

首先用git log查看一下所有本地的commit,找到想删除的Commit,将commit id复制出来,然后执行git reset <id>即可删除当次Commit,不会对代码本身造成影响。

1
2
3
4
5
6
7
8
$ git log
commit 8f56215ec1ffda4a81164e26451ee1a39d869625 (HEAD -> logs)
Author: LxnChan <lxnchan.example.account@lxnchan.eu.org>
Date: Tue Aug 16 03:31:48 2022 +0800

Auto Upload in 20220622081001

$ git reset 8f56215ec1ffda4a81164e26451ee1a39d869625

同时也可以加入-hard开关使代码恢复到该次Commmit之前(慎用)。

1
git reset -hard 8f56215ec1ffda4a81164e26451ee1a39d869625

Git LFS

Git LFS(Git Large File Storage)是 Git 的一个扩展工具,用于处理大型文件(如图片、视频、音频或二进制文件)的版本控制。它将大文件存储在外部服务器上,而在 Git 仓库中只保存文件的指针(指针文件),从而避免仓库膨胀、克隆变慢等问题。Git LFS 保持了标准的 Git 工作流程,同时提供更快的克隆和拉取体验。

安装 Git LFS

Git LFS 需要单独安装作为 Git 的命令行扩展。

  1. 从官网下载并安装 Git LFS(支持 Windows、macOS、Linux)。官网链接:https://git-lfs.com/
  2. 在终端运行初始化命令(只需为用户账户运行一次):
    1
    git lfs install
    这会将 git-lfs 命令添加到你的 PATH 中,并配置 Git hooks 以自动处理 LFS 文件。

安装后,可运行 git lfs version 检查是否成功。

配置仓库

在每个需要使用 LFS 的 Git 仓库中,配置要跟踪的文件类型。Git LFS 使用 .gitattributes 文件来定义规则。

  • 跟踪特定文件类型(例如,所有 .psd 文件):
    1
    git lfs track "*.psd"
    这会自动在 .gitattributes 中添加一行:*.psd filter=lfs diff=lfs merge=lfs -text
  • 确保 .gitattributes 被跟踪:
    1
    2
    git add .gitattributes
    git commit -m "Add Git LFS tracking rules"
  • 跟踪单个文件:
    1
    git lfs track "bigfile.zip"

注意:配置后,新添加的文件会自动使用 LFS。但现有文件(包括历史提交)不会自动转换,需要使用迁移命令(见下文)。

基本用法:添加、提交和推送

使用 Git LFS 后,工作流程与标准 Git 几乎相同。Git 会自动检测并处理 LFS 文件。

  • 添加文件:
    1
    git add bigfile.psd  
  • 提交:
    1
    git commit -m "Add large design file"
  • 推送:
    1
    git push origin main  # LFS 文件会推送到 LFS 服务器,指针推送到 Git 仓库

克隆和拉取:当别人克隆仓库时,只下载指针文件;运行 git lfs pull 会下载实际的大文件。

  • 示例完整流程:
    1
    2
    3
    4
    5
    6
    7
    8
    9

    git clone <repo-url>
    cd <repo>


    git lfs pull


    git lfs ls-files

迁移现有仓库

如果仓库已有大文件历史记录,可以用 git lfs migrate 命令重写历史,将大文件转换为 LFS 指针。这会改变提交历史,请谨慎使用(建议在分支上测试)。

  • 基本迁移(转换所有大文件):
    1
    git lfs migrate import --include="*.zip,*.psd"
  • 选项示例:
    • --include="*.jpg":只转换特定类型。
    • --exclude="*.small":排除某些文件。
    • --everything:转换整个仓库历史。

迁移后,推送前需使用 git push --force(小心,会覆盖远程历史)。

其他常用命令和提示

  • 列出 LFS 文件:
    1
    2

    git lfs ls-files
  • 锁定文件(防止并发编辑):
    1
    2
    git lfs lock bigfile.psd  
    git lfs unlock bigfile.psd
  • 环境支持:Git LFS 与 GitHub、GitLab、Bitbucket 等平台无缝集成,但需在平台上启用 LFS 支持(通常免费配额有限)。
  • 常见问题:
    • 如果推送失败,检查是否运行了 git lfs install
    • 大文件存储在 LFS 服务器上,仓库大小保持小巧,但需注意存储配额。
    • 卸载:运行 git lfs uninstall 移除 hooks。

如何在 Git Clone 时先不下载 LFS 文件

Git LFS(Large File Storage)默认会在 git clone 时自动下载大文件(如模型、图片),这可能导致克隆过程很慢或占用大量带宽。如果你想先只克隆仓库的元数据和指针文件(小尺寸),然后手动下载 LFS 文件,可以通过环境变量或配置跳过“smudge”过滤器(smudge 是 LFS 下载文件的步骤)。这不会影响仓库完整性,后续可用 git lfs pull 选择性下载。

1
GIT_LFS_SKIP_SMUDGE=1 git clone <仓库URL>

单机多Github账号

这一节操作适用于在同一台机器上需要同时登录多个账号的情况,例如在自己的电脑上同时存在且需要同时工作公司的仓库和自己的仓库。

创建额外密钥对

首先创建你额外的Key,<Your Email>处填写你注册Github的邮箱:

1
ssh-keygen -t rsa -C "<Your Email>"

注意执行后会问你密钥对的保存路径,千万不能默认留空,否则会覆盖掉前面已有的密钥对,其他的密码可留空:

1
Enter file in which to save the key (/root/.ssh/id_rsa): <输入你新的密钥对的存储位置>

然后打开~/.ssh/config文件,如果没有就新建一份,添加如下内容,其中IdentityFile行指向刚才创建的私钥位置、Host行可以随便写xxx.github.com,其余参数不要更改:

1
2
3
4
5

Host oth.github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/oth

保存后退出,测试是否生效:

1
2
3
4
ssh -T git@<Host>

ssh -T git@oth.github.com
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.

添加仓库

因为Host发生了更改,因此添加仓库时对应的仓库域名也需要做出更改:

1
2
3
git remote add origin git@<Host>:xxx/a.git

git remote add origin git@oth.github.com:xxx/a.git

此外可能还需要修改一下提交时所用的用户名和邮箱:

1
2
git config user.name "Github用户名"
git config user.email "Github注册邮箱"

Pull Request

在 Github 上提交 Pr 通常分成以下几个部分:将仓库Fork到自己的 Github 账户下,Clone到本地,修改,提交,Pull Request。

获得源码

  1. 将仓库Fork到自己的Github账户下。
  2. 通过git clone将仓库复制到本地。

提交

正常提交到自己仓库即可。

提交 Pull Request

点击Contribute即可创建新请求。

和远程同步

在Github上自己Fork的仓库只需点击Fetch upstream即可。

本地仓库则在仓库内执行git pull即可。

清空所有历史并强制上传

  1. 切换到latest_branch分支下
    1
    git checkout --orphan latest_branch
  2. 添加所有文件
    1
    git add -A
  3. 提交更改
    1
    git commit -am "清除所有历史版本以减少仓库大小,请重新从远程拷贝此仓库"
  4. 删除分支
    1
    git branch -D master
  5. 将当前分支重命名
    1
    git branch -m master
  6. 最后,强制更新存储库
    1
    git push -f origin master

禁用换行符自动转换

Git 在 Windows 系统默认情况下提交时会将 CR LF 转换成 LF ,检出时 LF 转换成 CR LF 。

运行如下命令全局设定不会自动转换。

1
git config --global core.autocrlf false

更换默认编辑器

在 Windows 上安装 Git 时会询问使用何编辑器,如果对当时的选择不满意之后也可以改,默认是nano

1
git config --global core.editor vim

提示内存不足

git clone过程中提示如下错误信息:

1
fatal: Out of memory, malloc failed (tried to allocate 1048576000 bytes)

首先可以设置一下http.Buffer的值,看一下行不行:

1
git config --global http.postBuffer [value]

其中[value]要设置为报错的那个值,比如我上面那个报错,值就要设置为1048576000

不过也可以试试清空Git自带的这个限制:

1
git config --global --unset http.postbuffer

调试选项

Git 提供了多种环境变量,用于启用跟踪(tracing)、性能监控、详细输出和调试功能。这些变量可以帮助诊断命令执行、网络问题、合并冲突等。以下是主要的环境变量列表。 它们通常通过设置值如 true12 或文件路径来激活(1 为基本跟踪,2 为更详细)。详细信息可查看官方文档Git Internals - Environment Variables

调试和跟踪变量(Debugging and Tracing)

这些变量主要用于记录 Git 的内部操作、包文件访问和网络交互。

环境变量描述示例用法
GIT_TRACE控制通用跟踪,包括别名展开和子程序调用。输出到 stderr 或指定文件。GIT_TRACE=1 git status
GIT_TRACE_PACK_ACCESS跟踪 packfile(打包文件)访问,显示访问的 packfile 和偏移量。GIT_TRACE_PACK_ACCESS=1 git log
GIT_TRACE_PACKET启用网络协议的包级跟踪,显示原始数据包交换。GIT_TRACE_PACKET=1 git fetch
GIT_TRACE_PERFORMANCE记录每个 Git 命令的性能数据,显示子命令执行时间。GIT_TRACE_PERFORMANCE=1 git gc
GIT_TRACE_SETUP显示 Git 设置阶段的信息,如仓库路径、工作目录和前缀。GIT_TRACE_SETUP=1 git status

详细输出和网络调试变量(Verbose Output and Network Debugging)

这些用于增强命令输出、网络请求细节或合并过程的可见性。

环境变量描述示例用法
GIT_CURL_VERBOSE启用 HTTP 操作中 curl 库的所有消息输出,类似于 curl -vGIT_CURL_VERBOSE=1 git clone
GIT_SSH_COMMAND指定 SSH 命令以启用详细 SSH 日志(如 -vvv)。GIT_SSH_COMMAND="ssh -vvv" git pull
GIT_MERGE_VERBOSITY控制递归合并策略的输出级别(0-5+,5+ 为详细调试)。GIT_MERGE_VERBOSITY=5 git merge

差异(Diff)和合并相关变量(Diff and Merge Related)

这些提供更多关于文件差异或合并的详细信息。

环境变量描述示例用法
GIT_DIFF_OPTS控制 git diff 的上下文行数(类似于 -u<n>)。GIT_DIFF_OPTS="-u5" git diff
GIT_EXTERNAL_DIFF指定外部程序处理 git diff,用于自定义差异逻辑。GIT_EXTERNAL_DIFF=my_diff git diff
GIT_DIFF_PATH_COUNTER在外部 diff 程序中,表示当前文件索引(从 1 开始)。(与 GIT_EXTERNAL_DIFF 结合使用)
GIT_DIFF_PATH_TOTAL在外部 diff 程序中,表示总文件数。(与 GIT_EXTERNAL_DIFF 结合使用)

其他提供详细信息的变量(Other Informative Variables)

这些变量虽非纯调试,但能增强日志或输出的细节。

环境变量描述示例用法
GIT_FLUSH控制 stdout 的 I/O 缓冲(1 为频繁刷新,0 为全缓冲)。GIT_FLUSH=1 git log
GIT_REFLOG_ACTION指定 reflog 中的描述文本,便于跟踪操作。GIT_REFLOG_ACTION="my action" git commit

推荐文章

 上一篇

Windows