背景:私は使う黒曜石勉強しながらノートを整理します。 Markdown形式のプレーンテキストファイルのコレクションは、「上記」で実行された次のファイル間のリンクと接続をグラフィカルに表示するアプリケーションです。単一フォルダのサブフォルダに保存するテキストファイル
私が望むもの: 私は今後の試験のために勉強しているので、毎日これらのテキストファイルに情報を追加しています。最終的に私は、各ファイルに対するすべての変更を含む自動的に生成された単一のテキストファイルを持ちたいと思います。その日に学んだすべての内容を再読んで復習できる一種の「日々まとめ」です。
追加の背景: 私は毎日午前3時にrsyncを使って私のノートフォルダの圧縮されていないコピーを作成するためにcronジョブを設定しました。このコピーは、最終的にどのような修正が行われたかを確認したいときに参考資料として活用できるようです。
一例This is some new text
5月15日にファイルAに次のように変更したとします。this is some more textual information
ファイルBに-""を追加しました。
5月15日私の「日々の要約」は次のとおりです
"This is some new text"
This is some more textual information"
私の研究: 私はdiffやmeld(GUI)のようなツールがファイルを比較するのに役立つことを知っています。 diff 出力形式はわかりにくいです。一方、Meldは非常に使いやすいですが、GUIアプリケーションなので、出力を単一のテキストファイルに送信する方法がわかりません。
答え1
これは実際にバージョン管理システムあなたはそこに建物を建てています:)
幸い、この問題は解決されました。そのようなツールの1つは、git
この分野で最も広く使用されているツールです。
私はObsidianについて知らないが、まだ統合されていないと仮定しますgit
。
最初は一度だけ.mdファイルを含むディレクトリを入力し、現在のディレクトリをgitに初期化します。リポジトリ、使用
git init .
0.1。 Internet TMでは、Obsidianはその設定を
.obsidian
。私たちはそれを無視したいので、.gitignore
その横に1行だけで呼び出されるテキストファイルを置きます。
.obsidian/
- 私たちがインポートするすべての新しいファイル(この時点ではみんなMarkdownファイルが新しいものです)gitの注意を引くために:(
git add file1.md file2.md …
またはちょうどgit add *.md
) - それでは、インデックスに追加されたファイルの現在の状態を記録しておきます。
git commit -m "This is the initial state"
- おめでとうございます!私たちは最初のgitコミットをしました!実行して、
git log -p
どの変更が含まれているかを確認してください。 「なし」から「コンテンツ付きファイル」に変更されたため、追加された行で始まる+
パッチセットを含むログが表示されます。 - それでは、いくつかのファイルを変更してみましょう。たとえば、ファイルの3行目を変更するとします
file3.md
。保存し、git commit -m "End of day commit" file3.md
。 (代わりに新しいファイル、git add filename.md
まず必要です! )。 git log -p
出力を確認してください。次の内容が表示されます。
@ 3,3
- old line content
+ new line content
より複雑な変更にも当てはまります。diff
コミット間に発生した変更を強調表示する表現を取得します。 Gitは非常に多くのことを行うことができますが、これについて説明するのはこの質問の範囲外です。
Gitのログ操作をよりグラフィカルで美しくするためのツールはたくさんあります。tig
例えば、私はそれをたくさん使っています。
したがって、午前 3 時 rsync 操作の代わりに適切なアクションを実行すると、git add *.md; git commit -sm "Automatic end of day commit"
変更の追跡が容易になります。バックアップの目的は単に実行しますgit push
(もう一度言いますが、これは過剰です。コンテンツをコピーすると言ったので言及するだけです。rsync
これはバックアップの目的であると仮定します)。