home commit with new plugins

This commit is contained in:
2026-06-21 09:51:55 +08:00
parent ebb9e385c5
commit 3d067fe75c
85 changed files with 10794 additions and 1443 deletions
+237
View File
@@ -0,0 +1,237 @@
# Visual Studio 中使用 Git
这篇记录 Visual Studio 里使用 Git 管理 Obsidian 笔记库的流程。
当前笔记库路径:
```text
E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes
```
GitHub 远程仓库:
```text
https://github.com/Ki5ter/Obsidian.git
```
## VS 里的几个设置不要混淆
`默认位置 Default location`
不是当前正在工作的仓库路径。它只是 Visual Studio 以后 clone 新仓库时默认放到哪里。
推荐设置成类似:
```text
E:\GitRepos
```
不推荐设置成:
```text
E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes
```
原因是 `MyNotes` 本身就是一个仓库,不应该再作为所有新仓库的默认存放目录。
`Git 全局配置 Git Global Config`
影响电脑上所有 Git 仓库,比如用户名、邮箱、全局代理。
`Git 仓库配置 Git Repository Config`
只影响当前打开的这个仓库,比如当前仓库的 `origin` 地址。
`远程库 Remotes`
配置当前本地仓库对应的远程仓库地址。常见写法:
```text
Name: origin
URL: https://github.com/Ki5ter/Obsidian.git
```
## 第一次使用的正确流程
1. 在资源管理器中找到笔记库文件夹:
```text
E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes
```
2. 如果笔记库在 OneDrive 里,先右键文件夹,选择:
```text
始终保留在此设备上
```
3. 用 Visual Studio 打开文件夹:
```text
文件 -> 打开 -> 文件夹
```
4. 打开 `Git 更改` 窗口。
5. 如果还不是 Git 仓库,选择创建 Git 仓库,或者用命令:
```powershell
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" init
```
6. 在当前仓库的远程库里添加:
```text
Name: origin
URL: https://github.com/Ki5ter/Obsidian.git
```
7.`Git 更改` 窗口输入提交信息,例如:
```text
Initial Obsidian notes backup
```
8. 点击 `全部提交`
9. 点击 `推送`
## 提交和推送的区别
`全部提交`
只是把改动提交到本地仓库。提交成功后,GitHub 上还不会有变化。
`推送`
把本地提交上传到 GitHub 远程仓库。
如果 VS 显示:
```text
2 传出
```
意思是本地有 2 个 commit 还没有推送到远程仓库。
## 本地分支名 master 和 main
有些仓库默认分支叫 `master`GitHub 新仓库常见默认分支叫 `main`
如果本地当前是 `master`,可以直接推送:
```powershell
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" push -u origin master
```
如果想改成 `main`
```powershell
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" branch -M main
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" push -u origin main
```
## Clash Verge 代理问题
如果推送时报错:
```text
Failed to connect to 127.0.0.1 port 10809
```
说明 Git 被配置成使用 `127.0.0.1:10809` 代理,但 Clash Verge 没有在这个端口提供服务。
当前 Clash Verge 配置中常见端口:
```text
mixed-port: 7897
socks-port: 7898
port: 7899
```
推荐让 Git 使用 `mixed-port`
```powershell
git config --global http.proxy http://127.0.0.1:7897
git config --global https.proxy http://127.0.0.1:7897
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" config http.proxy http://127.0.0.1:7897
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" config https.proxy http://127.0.0.1:7897
```
然后再推送:
```powershell
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" push -u origin master
```
或者回 Visual Studio 里点击 `推送`
如果不想让 Git 走代理,可以清除代理:
```powershell
git config --global --unset http.proxy
git config --global --unset https.proxy
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" config --unset http.proxy
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" config --unset https.proxy
```
## TUN 虚拟网卡模式
TUN 或虚拟网卡模式可以让更多系统流量进入代理,理论上也可能让 Git 不需要单独设置代理。
但它不是解决 Git 推送问题的第一选择,因为它会涉及管理员权限、DNS、路由和规则匹配。
当前场景更推荐:
```text
Clash Verge 正常运行
Git 的 http.proxy / https.proxy 指向 Clash Verge 的 mixed-port
VS 中正常点击推送
```
## 常见排查命令
查看当前仓库状态:
```powershell
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" status --short --branch
```
查看远程仓库:
```powershell
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" remote -v
```
查看分支:
```powershell
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" branch -vv
```
查看最近提交:
```powershell
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" log --oneline --decorate -5
```
查看 Git 代理:
```powershell
git config --global --get-regexp "http.*proxy|https.*proxy"
git -C "E:\Obsidian\OneDrive\Apps\remotely-save\MyNotes" config --get-regexp "http.*proxy|https.*proxy"
```
## OneDrive 注意事项
如果出现下面这些错误:
```text
not a git repository
Permission denied
The cloud file provider is not running
unable to access .git/info/exclude
```
优先检查 OneDrive 是否正在运行,以及笔记库是否已经设置为:
```text
始终保留在此设备上
```
Git 仓库里的 `.git` 目录不要只存在云端占位。`.git` 目录读不到时,Visual Studio 会无法刷新仓库设置,也可能无法提交或推送。