Git如何挂代理,绕过必须使用虚拟网卡的问题?
如果想为 Git 指定一个代理服务器,可以使用如下命令来设置 HTTP 和 HTTPS 协议的代理。假设你的代理地址是 127.0.0.1,端口是 7897(非常经典的clash服务器),那么你可以这样设置:
设置代理
进入Git bash之后: 对于 HTTP 协议:
对于 HTTPS 协议:
以上命令中的 —global 参数表示为当前用户的所有仓库设置代理。如果你只想对某个特定的仓库设置代理,可以在该仓库目录下运行上述命令但不使用 —global 参数。
取消代理设置
如果需要取消代理设置,可以使用以下命令: 对于 HTTP 协议:
对于 HTTPS 协议:
检查代理设置
要检查是否已经正确设置了代理,可以使用以下命令查看 Git 的配置:
这些命令可以帮助你确认代理设置是否已经按照预期生效。 请注意,如果你正在使用的代理需要认证(即用户名和密码),你需要将它们包含在代理的 URL 中,例如:http://username:password@127.0.0.1:7897。但是,请谨慎处理,确保不要在配置中明文存储敏感信息。
Git基本命令操作
使用 Git 进行暂存和提交是版本控制中最基本的操作。以下是详细步骤:
1. 查看文件状态
首先,查看工作目录中文件的状态,了解哪些文件被修改、新增或删除。
这会列出:
2. 暂存文件(添加到暂存区)
使用 git add 命令将文件从工作区添加到暂存区。
暂存单个文件:
例如:
暂存所有修改过的文件:
或
⚠️ 注意:git add . 只添加当前目录及子目录中的更改;git add -A 添加所有跟踪和未跟踪的文件。
3. 提交到本地仓库
使用 git commit 将暂存区的内容提交到本地仓库。
例如:
✅ 提交信息应简洁明了,说明本次修改的目的。
可选:跳过暂存区,直接提交(慎用)
如果你不想手动 add,可以直接提交所有已跟踪文件的更改(不包括新文件):
⚠️ 注意:此命令不会包含未跟踪的新文件(即从未被 git add 过的文件)。
完整示例流程
小贴士
掌握 git add 和 git commit 是使用 Git 的第一步,熟练后可以结合分支、推送等操作进行团队协作。
Git修改用户名
一、修改全局的用户名和邮箱(适用于以后的提交)
这不会修改历史提交,但会更改以后提交所使用的用户名。
⚠️ 注意:这只是影响未来的提交,不会修改已有的 commit 记录。
二、修改某一次提交的用户名和邮箱(使用 git commit —amend)
如果最近一次提交(HEAD)的用户名错了,可以修改最后一次提交:
然后强制推送(如果是推送到远程):
三、批量修改历史提交中的用户名(使用脚本重写历史)
如果你有多次提交都用了错误的用户名,需要用 git filter-branch 或更推荐的 git filter-repo 工具来批量修改。
方法1:使用 git filter-repo(推荐)
首先安装 git-filter-repo(比 filter-branch 更安全高效)。 然后运行:
注意:字符串要用 b""(字节串),因为 Python 处理的是字节。
执行后,所有匹配的提交都会被重写。 然后强制推送到远程:
⚠️ 警告:重写历史会影响其他协作者,请谨慎操作,确保团队知晓。
四、检查当前配置的用户名
查看全局:
总结
| 目的 | 命令 |
|---|---|
| 设置未来提交的用户名 | git config —global user.name “Name” |
| 修改最后一次提交作者 | git commit —amend —author=“Name |
| 批量修改历史提交 | 使用 git filter-repo |
| 强制推送更改 | git push —force-with-lease |
如需帮助确认哪些提交需要修改,可以用:
查看最近 10 次提交的作者信息。
打包Git项目
在 Git 中,你可以使用 git archive 命令将项目打包为 zip(或 tar)文件,这个命令会导出指定分支、标签或提交的干净工作树(不包含 .git 目录和 .gitignore 中忽略的文件),非常适合用于发布或分享源码。
✅ 基础用法:打包当前分支为 zip
✅ 打包指定分支(如 main 或 dev)
✅ 打包指定标签(如发布版本 v1.0.0)
✅ 打包指定提交(如某个 commit hash)
✅ 指定压缩格式(zip / tar.gz)
打包为 .zip
打包为 .tar.gz
✅ 添加前缀目录(推荐!避免解压后文件散落一地)
解压后结构:
💡 强烈建议加上 —prefix,否则所有文件会直接解压到当前目录,容易混乱。
✅ 完整示例:打包 main 分支为带目录结构的 zip
✅ 高级用法:只打包部分目录或文件
只打包 src/frontend/ 目录和 README.md 文件。
❗ 注意事项
🆚 对比:zip -r vs git archive
| 方式 | 命令 | 优点 | 缺点 |
|---|---|---|---|
| git archive | git archive -o xxx.zip HEAD | ✅ 自动过滤 .gitignore | |
| ✅ 不包含 .git | |||
| ✅ 可指定提交/分支/标签 | ❌ 不包含未跟踪文件 | ||
| zip -r | zip -r project.zip . | ✅ 包含所有本地文件(包括未跟踪的) | ❌ 包含 .git、node_modules 等垃圾文件 |
| ❌ 不安全,容易泄露敏感文件 |
✅ 推荐发布用 git archive,临时打包本地测试用 zip -r(但要小心)。
✅ 实用脚本示例:自动打包当前分支 + 时间戳
保存为 pack.sh,运行:
输出如:main-20250920-002100.zip ✅ 现在你已经掌握如何用 Git 优雅地打包项目为 zip 了!推荐用于发布、备份、提交作业、分享源码等场景。