1468 words
7 minutes
有关Git的操作
2025-09-20
No Tags

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 archivegit archive -o xxx.zip HEAD✅ 自动过滤 .gitignore
✅ 不包含 .git
✅ 可指定提交/分支/标签❌ 不包含未跟踪文件
zip -rzip -r project.zip .✅ 包含所有本地文件(包括未跟踪的)❌ 包含 .git、node_modules 等垃圾文件
❌ 不安全,容易泄露敏感文件

✅ 推荐发布用 git archive,临时打包本地测试用 zip -r(但要小心)。

✅ 实用脚本示例:自动打包当前分支 + 时间戳#

保存为 pack.sh,运行:

输出如:main-20250920-002100.zip ✅ 现在你已经掌握如何用 Git 优雅地打包项目为 zip 了!推荐用于发布、备份、提交作业、分享源码等场景。

Unity通用Gitignore#

忽略.idea和.svn的缓存文件#

有关Git的操作
https://fuwari.vercel.app/posts/有关git的操作/
Author
Axon
Published at
2025-09-20
License
CC BY-NC-SA 4.0