git同步

进入相应文件夹

pwd //显示当前文件夹路径(print working directory)
ls //**列出当前文件夹里的内容**(list directory contents
../   //回到上一层目录

我的路径

cd "/Users/jz/Library/Mobile Documents/iCloud~md~obsidian/Documents/plugin-use-CN"

同步到GitHub

  1. 在GitHub新建一个仓库,不要勾选 README / .gitignore(我们本地建),得到仓库的ssh地址,
  2. 进入本地项目的目录 初始化仓库
git init

创建 .gitignore

touch .gitignore

常见 Obsidian 插件推荐忽略

node_modules/
dist/
.obsidian/
.DS_Store
  1. 第一次提交代码 查看当前状态
git status

添加所有文件

git add .

提交

git commit -m "init: first commit"
  1. 把本地代码推到 GitHub 绑定远程仓库
git remote add origin ssh地址

检查一下(可省略)

git remote -v

推送到 GitHub 修改本地分支名(因为GitHub分支默认是main,修改本地分支为main以使同步正常,可以git branch检查分支名)

git branch -M main

把分支推到 GitHub 并建立关联

git push -u origin main
  1. 日常推送流程 添加
git add .

提交备注

git commit -m 

同步

git push

强制覆盖远程仓库

git push -f
  1. 提交信息规范
feat: 新功能
fix: 修 bug
refactor: 重构
docs: 文档
style: 只改格式

git 版本回退

查看历史提交

git log --oneline

保留工作区更改,回退 HEAD

git reset --soft <commit_hash>

取消版本回退 找回回退前的提交

git reflog

把 HEAD 指回原来的提交

git reset --soft 原来的哈希号

不回退版本,只是找出以前的代码

旧版本整个检出到某个临时地方

git show d31e499:src/ui/SidebarOverviewView.ts -- “/Users/jz/Library/Mobile Documents/iCloud~md~obsidian/Documents/all-in/.obsidian/plugins/learning-system/src”

子模块

假设插件放于A仓库,B仓库需要复用A仓库的插件 在B仓库中设置

git submodule update --remote
git commit -am "update a-plugin"
git clone --recurse-submodules +A仓库的shh

后续同步流程

git submodule update --remote
git commit -am "update learning-system submodule"

如果本地已经存在同名插件,但是该文件不是submodule

rm -rf .obsidian/plugins/learning-system
git submodule add git@github.com:jady21a/obsidian-learning-system.git .obsidian/plugins/learning-system
git commit -m "add learning-system submodule under .obsidian/plugins"
 

验证是否成功

git submodule status