<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Git on LeafCxy's Blog</title><link>https://leafcxy.github.io/tags/git/</link><description>Recent content in Git on LeafCxy's Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 11 Aug 2026 10:00:00 +0800</lastBuildDate><atom:link href="https://leafcxy.github.io/tags/git/index.xml" rel="self" type="application/rss+xml"/><item><title>Git 代理配置完全指南</title><link>https://leafcxy.github.io/posts/git-proxy-guide/</link><pubDate>Tue, 11 Aug 2026 10:00:00 +0800</pubDate><guid>https://leafcxy.github.io/posts/git-proxy-guide/</guid><description>&lt;p&gt;这篇文章梳理 Git 中所有代理配置方式，从简单的 &lt;code&gt;git config&lt;/code&gt; 到 SSH 协议的 SOCKS5 隧道，一份指南全搞定。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id="为什么需要代理"&gt;为什么需要代理&lt;/h2&gt;
&lt;p&gt;访问 GitHub、GitLab 等平台时，有时会遇到 &lt;code&gt;git clone&lt;/code&gt; 速度极慢甚至超时的情况。尤其是在国内网络环境下，给 Git 配置代理几乎是必备技能。&lt;/p&gt;
&lt;div class="mermaid" align="center"&gt;flowchart LR
A[你的电脑] --&gt; B{需要代理？}
B --&gt;|直连通畅| C[直接连接 Git 服务器]
B --&gt;|速度慢/超时| D[代理服务器]
D --&gt; E[Git 服务器&lt;br/&gt;github.com&lt;br/&gt;gitlab.com]
C --&gt; E&lt;/div&gt;
&lt;h2 id="配置方式总览"&gt;配置方式总览&lt;/h2&gt;
&lt;p&gt;Git 提供多种配置代理的途径，优先级从高到低：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;配置方式&lt;/th&gt;
&lt;th&gt;持久性&lt;/th&gt;
&lt;th&gt;作用范围&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;-c&lt;/code&gt; 命令行参数&lt;/td&gt;
&lt;td&gt;单次命令&lt;/td&gt;
&lt;td&gt;单仓库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git config --local&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;写入 &lt;code&gt;.git/config&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;单个仓库&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git config --global&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;写入 &lt;code&gt;~/.gitconfig&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;当前用户&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;环境变量&lt;/td&gt;
&lt;td&gt;Shell 会话级&lt;/td&gt;
&lt;td&gt;当前终端&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;div class="mermaid" align="center"&gt;graph TD
A[Git 发起网络请求] --&gt; B{有 -c 参数？}
B --&gt;|是| F[使用 -c 指定的代理]
B --&gt;|否| C{有 local 配置？}
C --&gt;|是| G[使用 local 代理]
C --&gt;|否| D{有 global 配置？}
D --&gt;|是| H[使用 global 代理]
D --&gt;|否| E{有环境变量？}
E --&gt;|是| I[使用环境变量代理]
E --&gt;|否| J[直连]&lt;/div&gt;
&lt;h2 id="一httphttps-代理"&gt;一、HTTP/HTTPS 代理&lt;/h2&gt;
&lt;p&gt;这是最常用的方式，适用于 &lt;code&gt;https://&lt;/code&gt; 协议的仓库。&lt;/p&gt;
&lt;h3 id="11-配置命令"&gt;1.1 配置命令&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 全局设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.proxy http://127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global https.proxy http://127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 仅对当前仓库设置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --local http.proxy http://127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 查看当前配置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global --get http.proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 取消代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global --unset http.proxy
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global --unset https.proxy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="12-带认证的代理"&gt;1.2 带认证的代理&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 用户名密码认证&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.proxy http://user:pass@127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 特殊字符需要 URL 编码，@ → %40，: → %3A&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.proxy http://user:p%40ss@127.0.0.1:7890
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="13-针对特定域名"&gt;1.3 针对特定域名&lt;/h3&gt;
&lt;p&gt;只想给 GitHub 走代理，公司内网 GitLab 直连？按域名精准控制：&lt;/p&gt;</description></item><item><title>Git的奇技淫巧</title><link>https://leafcxy.github.io/posts/2025-08-18/</link><pubDate>Mon, 18 Aug 2025 02:28:16 +0000</pubDate><guid>https://leafcxy.github.io/posts/2025-08-18/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Git 常用命令集合，Fork 自 &lt;a href="https://github.com/git-tips/tips"&gt;tips&lt;/a&gt; 项目&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Git 是一个分布式版本管理工具，版本管理工具就是大家在写东西的时候都用过 &lt;strong&gt;回撤&lt;/strong&gt;这个功能，但是回撤只能回撤几步，假如想要找回我三天之前的修改，光用回撤是找不回来的。而&lt;strong&gt;版本管理工具能记录每次的修改&lt;/strong&gt;，只要提交到版本仓库，就可以找到之前任何时刻的状态（文本状态）。&lt;/p&gt;
&lt;p&gt;下面的内容就是列举了常用的 Git 命令和一些小技巧，可以通过页面内查找的方式 &lt;code&gt;Ctrl/Command+f&lt;/code&gt; 进行快速查找。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id="开卷必读"&gt;开卷必读&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;如果之前未使用过 Git，可以学习 &lt;a href="https://rogerdudler.github.io/git-guide/index.zh.html"&gt;Git 小白教程&lt;/a&gt;入门&lt;/em&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;一定要先测试命令的效果后&lt;/strong&gt;，再用于工作环境中，以防造成不能弥补的后果！&lt;strong&gt;到时候别拿着砍刀来找我&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;所有的命令都在 &lt;code&gt;git version 2.7.4 (Apple Git-66)&lt;/code&gt; 下测试通过&lt;/li&gt;
&lt;li&gt;统一概念：
&lt;ul&gt;
&lt;li&gt;工作区：改动（增删文件和内容）&lt;/li&gt;
&lt;li&gt;暂存区：输入命令：&lt;code&gt;git add 改动的文件名&lt;/code&gt;，此次改动就放到了 ‘暂存区’&lt;/li&gt;
&lt;li&gt;本地仓库(简称：本地)：输入命令：&lt;code&gt;git commit 此次修改的描述&lt;/code&gt;，此次改动就放到了本地仓库，每个 commit，我叫它为一个版本。&lt;/li&gt;
&lt;li&gt;远程仓库(简称：远程)：输入命令：&lt;code&gt;git push 远程仓库&lt;/code&gt;，此次改动就放到了远程仓库（GitHub 等)&lt;/li&gt;
&lt;li&gt;commit-id：输出命令：&lt;code&gt;git log&lt;/code&gt;，最上面那行 &lt;code&gt;commit xxxxxx&lt;/code&gt;，后面的字符串就是 commit-id&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;如果喜欢这个项目，欢迎 Star、提交 Pr、&lt;a href="https://github.com/521xueweihan/git-tips/issues"&gt;反馈问题&lt;/a&gt;😊&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="展示帮助信息"&gt;展示帮助信息&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-sh" data-lang="sh"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git help -g
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The command output as below:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;The common Git guides are:
attributes Defining attributes per path
cli Git command-line interface and conventions
core-tutorial A Git core tutorial for developers
cvs-migration Git for CVS users
diffcore Tweaking diff output
everyday A useful minimum set of commands for Everyday Git
glossary A Git Glossary
hooks Hooks used by Git
ignore Specifies intentionally untracked files to ignore
modules Defining submodule properties
namespaces Git namespaces
repository-layout Git Repository Layout
revisions Specifying revisions and ranges for Git
tutorial A tutorial introduction to Git
tutorial-2 A tutorial introduction to Git: part two
workflows An overview of recommended workflows with Git
&amp;#39;git help -a&amp;#39; and &amp;#39;git help -g&amp;#39; list available subcommands and some concept guides. See &amp;#39;git help &amp;lt;command&amp;gt;&amp;#39; or &amp;#39;git help &amp;lt;concept&amp;gt;&amp;#39; to read about a specific subcommand or concept.
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="回到远程仓库的状态"&gt;回到远程仓库的状态&lt;/h2&gt;
&lt;p&gt;抛弃本地所有的修改，回到远程仓库的状态。&lt;/p&gt;</description></item><item><title>git工作流</title><link>https://leafcxy.github.io/posts/2025-07-23-9/</link><pubDate>Wed, 23 Jul 2025 07:52:35 +0000</pubDate><guid>https://leafcxy.github.io/posts/2025-07-23-9/</guid><description>&lt;ol&gt;
&lt;li&gt;git clone // 到本地&lt;/li&gt;
&lt;li&gt;git checkout -b xxx 切换至新分支xxx
（相当于复制了remote的仓库到本地的xxx分支上&lt;/li&gt;
&lt;li&gt;修改或者添加本地代码（部署在硬盘的源文件上）&lt;/li&gt;
&lt;li&gt;git diff 查看自己对代码做出的改变&lt;/li&gt;
&lt;li&gt;git add 上传更新后的代码至暂存区&lt;/li&gt;
&lt;li&gt;git commit 可以将暂存区里更新后的代码更新到本地git&lt;/li&gt;
&lt;li&gt;git push origin xxx 将本地的xxxgit分支上传至github上的git&lt;/li&gt;
&lt;/ol&gt;
&lt;!-- more --&gt;
&lt;hr&gt;
&lt;p&gt;（如果在写自己的代码过程中发现远端GitHub上代码出现改变）&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;git checkout main 切换回main分支&lt;/li&gt;
&lt;li&gt;git pull origin master(main) 将远端修改过的代码再更新到本地&lt;/li&gt;
&lt;li&gt;git checkout xxx 回到xxx分支&lt;/li&gt;
&lt;li&gt;git rebase main 我在xxx分支上，先把main移过来，然后根据我的commit来修改成新的内容
（中途可能会出现，rebase conflict &amp;mdash;&amp;ndash;》手动选择保留哪段代码）&lt;/li&gt;
&lt;li&gt;git push -f origin xxx 把rebase后并且更新过的代码再push到远端github上
（-f &amp;mdash;》强行）&lt;/li&gt;
&lt;li&gt;原项目主人采用pull request 中的 squash and merge 合并所有不同的commit&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;远端完成更新后&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;git branch -d xxx 删除本地的git分支&lt;/li&gt;
&lt;li&gt;git pull origin master 再把远端的最新代码拉至本地&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>设置代理解决github被墙</title><link>https://leafcxy.github.io/posts/2025-07-22-12/</link><pubDate>Tue, 22 Jul 2025 08:42:22 +0000</pubDate><guid>https://leafcxy.github.io/posts/2025-07-22-12/</guid><description>&lt;p&gt;虽然有梯子，可以正常访问github页面，但是在发现“git clone”命令速度特别慢，有时还经常卡掉。可以通过设置git 代理，解决被墙问题。&lt;/p&gt;
&lt;p&gt;git 有几种传输协议，在Github上主要用到的是Https和SSH协议。所以我们要做的是对git 命令的https 以及ssh流量做代理。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;h2 id="设置https-代理"&gt;设置https 代理&lt;/h2&gt;
&lt;p&gt;Git代理有两种设置方式，分别是全局代理和只对Github代理，建议只对github 代理。代理协议也有两种，分别是使用http代理和使用socks5代理，建议使用socks5代理。注意下面代码的端口号需要根据你自己的代理端口设定，比如我的代理socks端口是51837。&lt;/p&gt;
&lt;h3 id="全局设置不推荐"&gt;全局设置（不推荐）&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#使用http代理 &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.proxy http://127.0.0.1:58591
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global https.proxy https://127.0.0.1:58591
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#使用socks5代理&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.proxy socks5://127.0.0.1:51837
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global https.proxy socks5://127.0.0.1:51837
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="只对github代理推荐"&gt;只对Github代理（推荐）&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#使用socks5代理（推荐）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.https://github.com.proxy socks5://127.0.0.1:51837
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#使用http代理（不推荐）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global http.https://github.com.proxy http://127.0.0.1:58591
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="取消代理"&gt;取消代理&lt;/h3&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config --global --unset http.proxy git config --global --unset https.proxy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="设置ssh代理终极解决方案"&gt;设置ssh代理（终极解决方案）&lt;/h3&gt;
&lt;p&gt;https代理存在一个局限，那就是没有办法做身份验证，每次拉取私库或者推送代码时，都需要输入github的账号和密码，非常痛苦。
设置ssh代理前，请确保你已经设置ssh key。可以参考在 github 上添加 SSH key 完成设置
更进一步是设置ssh代理。只需要配置一个config就可以了。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Linux、MacOS&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vi ~/.ssh/config
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# Windows &lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;到C:&lt;span style="color:#ae81ff"&gt;\U&lt;/span&gt;sers&lt;span style="color:#ae81ff"&gt;\y&lt;/span&gt;our_user_name&lt;span style="color:#ae81ff"&gt;\.&lt;/span&gt;ssh目录下，新建一个config文件（无后缀名）
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;将下面内容加到config文件中即可&lt;/p&gt;
&lt;p&gt;对于windows用户，代理会用到connect.exe，你如果安装了Git都会自带connect.exe，如我的路径为C:\APP\Git\mingw64\bin\connect&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#Windows用户，注意替换你的端口号和connect.exe的路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ProxyCommand &lt;span style="color:#e6db74"&gt;&amp;#34;C:\APP\Git\mingw64\bin\connect&amp;#34;&lt;/span&gt; -S 127.0.0.1:51837 -a none %h %p
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#MacOS用户用下方这条命令，注意替换你的端口号&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#ProxyCommand nc -v -x 127.0.0.1:51837 %h %p&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host github.com
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; User git
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Port &lt;span style="color:#ae81ff"&gt;22&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Hostname github.com
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 注意修改路径为你的路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; IdentityFile &lt;span style="color:#e6db74"&gt;&amp;#34;C:\Users\Your_User_Name\.ssh\id_rsa&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; TCPKeepAlive yes
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Host ssh.github.com
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; User git
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Port &lt;span style="color:#ae81ff"&gt;443&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Hostname ssh.github.com
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#75715e"&gt;# 注意修改路径为你的路径&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; IdentityFile &lt;span style="color:#e6db74"&gt;&amp;#34;C:\Users\Your_User_Name\.ssh\id_rsa&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; TCPKeepAlive yes
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;保存后文件后测试方法如下，返回successful之类的就成功了。&lt;/p&gt;</description></item><item><title>git无法签出代码</title><link>https://leafcxy.github.io/posts/2025-07-21/</link><pubDate>Mon, 21 Jul 2025 06:16:50 +0000</pubDate><guid>https://leafcxy.github.io/posts/2025-07-21/</guid><description>&lt;p&gt;Q: 在Windows10上使用git clone代码的时候抛出了异常，重试了几次都是相同的错误：下载的目录里除了.git没有任何东西。&lt;/p&gt;
&lt;!-- more --&gt;
&lt;p&gt;A: 源代码是在linux上编写的，但是在Windows10上拉取代码却出现了问题。根据提示可以看出代码clone是成功的，但是checkout的时候出现了错误。那么问题很可能是不通系统下文件属性或策略导致的。&lt;/p&gt;
&lt;p&gt;然后在Git文档上找到一个关于NTFS保护机制的配置，core.protectNTFS：&lt;/p&gt;
&lt;p&gt;If set to true, do not allow checkout of paths that would cause problems with the NTFS filesystem, e.g. conflict with 8.3 “short” names. Defaults to true on Windows, and false elsewhere.&lt;/p&gt;
&lt;p&gt;Windows系统下默认值是true，也就是说不符合NTFS策略的文件不会被签出，设置为false后可以关闭保护机制。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git config core.protectNTFS false
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>