在提交的还原和未还原状态之间切换以将旧/新设置应用于配置文件

问题描述 投票:0回答:2

我想知道它是否可以按照我想象的方式完成。

我已经对 Obsidian 中的 26 个

[A-Z]
(子)保险库进行了设置更改。如果我想撤消这些,我需要在 iOS 快捷方式中写入 26 次 3-4 个文件,但是让快捷方式递归搜索和替换数据(使用 A-Shell)将需要时间在一个包含许多文件夹的大型保险库上有自己的设置。

我想记下提交的提交 ID,并使用 iOS 快捷方式在状态之间实际切换以应用任何一组设置。

在 StackOverflow 上查找答案后,我看到了

cherry-pick
命令作为替代方法。
我将如何使用 revert 和/或 cherry-pick 在两种状态之间切换(例如,在“白天”和“夜晚”设置中)?

好吧,问题:

  • A-Shell Libgit2 无法识别命令
    revert
    ;
  • NewTerm2 终端(JB 应用程序)可以执行
    git revert <commit-with-hash-ID>
    (在对 repo/vault 进行符号链接之后),当然,还有合并冲突需要处理(需要对特定行进行更改才能撤消,然后才能工作);
  • Newterm2 不支持 Siri 快捷方式(我没有使用 SSH 进入本地主机的经验,也没有经验可以与我的 git repo 一起使用)。
git config git-revert git-cherry-pick
2个回答
1
投票

这是一个更好的主意。利用

git stash
。您可以使用
git stash
维护两个或多个不同的覆盖层以配置文件中的数据,您可以根据需要丢弃这些数据并按需调用。

如果您要进行真正的更改并希望存储在相同的文件中,那么您将不得不使用

git-add -p
进行交互式补丁样式选择,以选择要添加到提交索引的部分。这是覆盖配置文件中数据以进行测试的常用做法,您需要不断回忆,我一直这样做。例如,我的日志级别应该以一种方式设置为生产,但为了开发,我一直想提高它们我不想每次都编辑文件......我只是说
git stash apply mylog
(用
git stash save mylog
保存它们)

这不是 git cherry-pick 和 revert 的目的。如果您想提交历史记录,撤消提交或从另一个分支提交提交,它们真的是为了提交。


0
投票

UpAndAdam的idea确实是idea。但是

git stash
并不完全用于这些“工作流程”,因为不能将临时“覆盖层”放在一边。没有命令可以这样做。我无意从隐藏的文件中创建分支,也不想手动选择应该提交+推送到远程的内容。

我所做的是使用非常简单的正则表达式运行两个

checkout
命令(在 NewTerm2 中,因为 A-Shell 与 Libgit2 没有让步):
git checkout -- [A-Z]/.obsidian/appearance.json

git checkout -- [A-Z]/.obsidian/plugins/obsidian-style-settings/data.json

这处理了我的“临时”52 个文件,这些文件现在已从工作区中撤回,我已准备好提交并推送我的更改。

整个事情(解决方案?)确实非常笨拙,尤其是因为我需要一个一键式解决方案(所以下一步是学习如何使用本地 SSH 实现自动化)。


如果有人想知道,我试图找到一个解决方案来解决无法在 Obsidian 中或使用 URL 方案(无论是使用 Obsidian Advanced URI 插件)完成的事情:在特定主题设置中进行更改。
我有更多的改变,但还是接受了这些,因为它们很容易用这样的 2 个命令来处理。

© www.soinside.com 2019 - 2024. All rights reserved.