Git、GitHub とクラウド
Git はローカルです。あなたのコンピューターで動く無料のプログラムで、バージョンの履歴をフォルダーの中の隠しフォルダー .git に保存します。バージョン管理をオンにしてもインターネットには何も送られず、アカウントも要りません。バージョンはこのマシンにだけあります。ディスクが壊れたりコンピューターをなくしたりすれば、バージョンも一緒に失われます。
GitHub は別物で、クラウドのサービスです。リポジトリのコピーを保管します。同期すると、LightNote はバージョンを GitHub(または似たサービス)に送信します。このコピーが別の場所にあることでバックアップになり、同じノートを別のコンピューターで使えます。一方で送信し、もう一方で受信します。GitHub は個人利用なら無料で、自分だけが見られるプライベートリポジトリを無制限に作れます。
まとめると、Git はあなたのコンピューターにあるバージョン、リモートはその別の場所にあるコピーです。リモートには GitHub、ほかのサービス、OneDrive や Google Drive のフォルダー、自分のサーバーが使えます。フォルダーにリモートがない間、バージョン管理パネルにはバージョンはこのコンピューターにだけあります。と表示され、下で説明するバックアップと同期…のリンクが出ます。
リポジトリをクローンする
すでにあるリポジトリで作業するには ファイル → Git リポジトリをクローン... を使います。この項目はスタート画面にも、まだリポジトリでないフォルダーのバージョン管理パネルにもあります。リポジトリのページに表示される HTTPS または SSH のアドレスを貼り付けてください。ページ自体の URL でもよく、git clone ... をそのままコピーしたものでも構いません。保存先の親フォルダーとフォルダー名を選ぶと、どこに作られるかが表示され、そこに既に何かある場合は知らせます。詳細オプションにはブランチ、シャロークローン(最後のコミットだけ)、サブモジュールがあります。
サーバーがログインを求めると、LightNote はウィンドウで尋ねます。ユーザー名とトークン、SSH 鍵のパスフレーズ、あるいはこのコンピューターが一度も見たことのないサーバーの鍵の確認です。最後の場合はフィンガープリントと、サービスが公開している一覧へのリンクが表示され、既定は信頼しないです。回答は Git に直接渡され、LightNote は保存しません。保存するのは Git の資格情報マネージャーで、インストールされている場合に限ります(Git for Windows には Git Credential Manager が含まれます)。鍵を信頼すると、ssh 自身と同じように ~/.ssh/known_hosts に書き込まれます。
クローンに失敗した場合、画面は何が起きたかを伝え、出口を示します。SSH 鍵が拒否されたときは HTTPS で試す、会社のプロキシが HTTPS を検査しているときは Windows の証明書を使う、途中で接続が切れるときは最後のコミットだけ取得する、Windows がファイルを作れないときは長いパスを使う、といった具合です。技術的な詳細には Git のメッセージが入り、認識できないものは AI に渡せます。終わると、クローンしたフォルダーをこのウィンドウか新しいウィンドウで開きます。
開いているフォルダーをバージョン管理する
バージョン管理はワークスペースごとのオプトインです。ツール → ワークスペース → ワークスペースの設定...で 有効にすると、LightNote は Git リポジトリを作成し(まだない場合)、バージョン管理の サイドバー(Ctrl+Shift+G)を表示します。
自動モードでは、LightNote が全般設定で選んだタイミング(保存時・タブを閉じたとき・ ウィンドウを閉じたとき)で自動的にバージョン(コミット)を保存します。セッション中のコミットに入るのは LightNote が書き込んだものだけです。AI の CLI やほかのプログラムが変えたものは保留のまま残り、変えた側が自分でコミットします。Ctrl+S はすぐにバージョンを保存し、自動保存が書き込んだ内容は 10 分ごとにコミットされます。ウィンドウを閉じるとき(既定でオン)のコミットは、LightNote の外での変更も含め、フォルダーで変わったすべてを含みます。セッション終了時の安全網です。手動モードでは、 メッセージを書いてパネルでバージョンを保存します。ステータスバーのインジケーターは状態 (変更なし、X 件の変更…)を示し、クリックすると Git メニューが開きます(下記参照)。まだバージョン管理していないフォルダーでは、ワークスペースの設定が連携のページで開きます。 各ファイルの差分を表示し、未保存の変更を復元(破棄)できます。
自動化にはフォルダーごとに 3 段階があります(ワークスペースの設定): 手動(自動処理なし)、自動コミット(自動でバージョンを保存するが同期はしない)、 すべて自動(コミットして同期する — コミット後にプッシュ+定期的にプル。 プロンプトなしの Git 認証情報が必要)。パネルにはリモートに対する↑ 送信予定 / ↓ 受信予定 のステータス行が表示され、送信するバージョンがあるときは主ボタンがコミットから 同期に変わります。これにより、保存後にまだ同期が必要なことが分かります。
Git パネルとツリーの Git メニューには、ファイルごとの 追加 (git add) と 復元 (git restore)、そして比較画面を開く 変更を見る の 1 つがあります。パネルの一覧はパスの自然順に並び、ファイルのコンテキストメニューには コピー... と エクスプローラーで表示(削除されたファイルでは無効)もあります。
比較画面は 2 つのバージョンを左右に並べ、行をそろえて表示します。同じ部分はつねに向かい合い、それぞれの側にはそのファイルの行番号が出ます。書き換えられた行は琥珀色になり、変わった部分が行の中で強調されます。統合表示ボタンでパッチ形式に切り替わり、左右を入れ替えで比較の基準が入れ替わり、F8 / Shift+F8 で変更を次々にたどれます。
ステータスバーの Git メニュー。バージョン管理しているフォルダーでは、インジケーターがブランチと、その横に同期が残っている分(↓ 受信、↑ 送信)を示します。点はすべてがバージョンに保存されていれば緑、保留中の変更があれば琥珀色、競合したファイルがあれば赤です。クリックすると、状態の全体から始まるメニューが開き、すべてをバージョン保存(コミット)…(ほかのプログラムによる変更も含め、フォルダーのすべての変更を含めます。メッセージが空なら自動になります)、Git パネルを開く、そしてリモートリポジトリがあれば 同期(受信して送信)、受信(マージで pull)、送信(push)、リモートを確認(fetch) を選べます。受信は常にマージで、マシンの Git の設定にかかわらずリベースはしません。マージで競合が起きると送信は行われず、メニューに 競合したマージを取り消す… が表示されます。自動アクションでは、設定を開かずにフォルダーの自動化レベルを切り替えられます。詳細の git コマンドを実行… は、リポジトリのフォルダーで任意のコマンドを実行して出力を表示します。端末がないため、入力を求めるコマンド(メッセージのエディター、コンソールでのパスワード)は待たずに中止します。そうしたコマンドはターミナルを使ってください。Git がインストールされていない場合、クリックするとインストールのガイドが開きます。
移動と名前の変更。LightNote でファイルやフォルダーを移動・名前変更すると (ツリーでのドラッグ、切り取りと貼り付け、名前の変更)、バージョンは移動元と移動先を一緒に記録し、Git は名前の変更として扱います。入るのはすでにバージョン管理されていたものだけで、移動したフォルダー内の新しいファイルはほかと同じく待ちます。Ctrl+S と同じ規則で、保存時のコミットがオフなら次のコミットを待ちます。大きなファイルは入りません。大きなファイルとサービスの制限を参照してください。
履歴と変更の帯
コードエディターとノートのバーには、ファイルのバージョン用のボタンが 2 つあります。バージョンを保存 はファイルを書き込み、このバージョンを残します。Git で管理しているフォルダーでは このファイルだけをコミット し(ほかのプログラムや AI セッションがほかのファイルに加えた変更は含まれません)、リポジトリの外では ローカル履歴 に記録します。前のバージョンから何も変わっていないときはグレーになり、理由はツールチップに出ます。
バージョン は開いているファイルのバージョン一覧を開き(サイドバーの同じセクションです)、その矢印には メッセージを付けてバージョンを保存…、前のバージョンからの変更を見る、前のバージョンからの変更を破棄… があります。最後のものはファイルを前のバージョンに戻し(Git の有無は問いません)、破棄したテキストはローカル履歴に残り、Ctrl+Z でも元に戻せます。一覧には コミット と ローカル保存 がまとまります。LightNote は Ctrl+S のたびに 1 つ、自動保存ではファイルごとに最大 10 分に 1 つ記録し、最初の書き込み前のファイルも残すので、リポジトリではないフォルダーでも使えます。各行には件名、作成者、日時、増減した行数が並び、丸印で自分のコミット・LightNote 自身の保存・AI セッション由来のコミットを見分けられます。コミットしていない変更があるときは、それが先頭行になります。バージョンをクリックすると、そのバージョンでの変更が表示されます。バージョン全体を開く、現在のものと比較する、選択した 2 つを比較する、は右クリックにあります。
余白の色付きの帯が前のバージョンからの変更行を示します — コードエディターだけでなくノートでもです。帯は入力に追従し、元に戻すと保存を待たずに消えます。前のバージョンとは、ファイルを開いた時点の最後のコミットです(Git がなければ、開いたときのファイル)。保存や自動コミットでは動かず、バージョンを保存 をクリックするかタブを閉じるまで印は残ります。切るには表示 → 変更の帯。切ると隠れるだけでなく、計算そのものが行われません。帯をクリックすると以前の内容が表示され、この部分を元に戻す(Ctrl+Z で取り消せます)、元の内容をコピー、そして完全な比較をその行に合わせて開く 差分で見る が使えます。開いているファイルが LightNote の外で変更されたとき(たとえば AI の CLI が書き込んだとき)、未保存の編集がないタブは黙って再読み込みされ、帯が変更を示します。あなたの編集が別の箇所にあれば、両方が統合されます(Ctrl+Z で元に戻せます)。両方が同じ行を変えた場合は、タブ上部の黄色いバーに 比較、ディスクの方を使う、自分の方を残す が出ます。選ぶまで自動保存はそのファイルを書き込まず、捨てた方のバージョンはローカル履歴に残ります。ローカル履歴について 1 点だけ: パスごとに保存されるため、ファイル名を変更するとそのローカル保存は失われます。Git のコミットは失われません。
行の作成者とブランチの切り替え
この行を書いたのは誰か。ステータスバーの Git メニューで 行の作成者 (blame) をオンにすると、カーソル行の末尾に、書いた人・日時・バージョンの要約が表示されます(例:Ana · 3 日前 · 合計を修正)。注釈が付くのはカーソル行だけで、カーソルに付いて動きます。まだどのバージョンにも入っていない行には バージョン管理対象外 と表示されます。保存していない変更があるときは、ディスク上のファイルの行が画面の行と合わなくなるため、保存すると作成者を表示します と表示されます。
ブランチの切り替え。同じメニューのサブメニュー ブランチ: main(現在のブランチ名)に、ローカルブランチが一覧されます。現在のブランチにはチェックが付き、別のブランチをクリックすると切り替わります(git checkout)。ブランチを作成… は名前を尋ね、Git を呼ぶ前に確認し(空白、..、先頭の - は使えません)、現在のブランチから新しいブランチを作ってそこで作業を続けます。競合しているファイルがあるときや同期の処理中は、切り替えできません。
バックアップと同期: GitHub の手順
パネルのバックアップと同期…のリンク(パネルの ⋯ メニューとステータスバーの Git メニューにあるリモートリポジトリを追加…と同じもの)を開くと、バックアップと同期の画面が出ます。道は三つです。おすすめの GitHub、ほかのサービス、そして同期フォルダー(OneDrive、Google Drive、Dropbox、USB メモリー、ネットワークフォルダー)。どれも使えますが、複数のコンピューターでノートを使うには GitHub がいちばん簡単で、バックアップとしてもいちばん安全です。GitHub の場合:
- github.com/signup でアカウントを作ります。メールアドレス、パスワード、ユーザー名を入れると、GitHub からメール確認用のコードが届きます。Free プランで十分です。
- github.com/new でリポジトリを作ります。名前を付け(例:
notes)、Private を選び、Add a README、.gitignore、ライセンスにはチェックを入れません。リポジトリは空で作る必要があります。README があると、GitHub にあなたのものではない履歴ができてしまい、最初の送信が拒否されます。 - ページに表示される HTTPS のアドレス(
https://github.com/あなた/notes.gitのようなもの)をコピーし、LightNote の画面のリポジトリのアドレスに貼り付けます。今すぐバージョンを送信はチェックしたまま、接続をクリックします。 - サインインします。最初の送信のとき、Git が GitHub のウィンドウを開くので、ブラウザーで許可します。その後は Windows がアクセスを保存します(保存するのは Git for Windows に付属の Git Credential Manager です)。もう一度サインインする必要はありません。
- もう一台のコンピューターでは Git と LightNote をインストールし、同じアドレスでファイル → Git リポジトリをクローン...を使います。それ以降は、同期がもう一台から送られたものを受信し、こちらでの変更を送信します。
同期を忘れないようにするには、フォルダーの設定ですべて自動を選びます。LightNote がコミットのたびに送信し、ときどき受信します。知っておきたい制限が二つあります。GitHub は 100 MB を超えるファイルを受け付けず、リポジトリは約 1 GB までを推奨しています。動画や大きなファイルはバージョン管理するフォルダーの外に置いてください。またプライベートとは、リポジトリを見られるのがあなた(と招待した人)だけという意味で、内容そのものは GitHub のサーバーにあります。機密の内容には、コンピューターを出る前に暗号化される セキュア Markdown を使ってください。
スマートフォンで。リモートを接続すると、スマートフォンで開く…(パネルの ⋯ メニューとステータスバーの Git メニュー)が QR コードを表示します。スマートフォンの LightNote でワークスペース名をタップし、パソコンの QR コードを読み取るを選ぶと、リポジトリがスマートフォンの新しいワークスペースになります。QR に含まれるのはアドレスだけで、パスワードは含まれません。リポジトリが非公開の場合、スマートフォンはそのサーバーの Git アカウントを使うか、アクセス トークンを求めます。スマートフォンは HTTPS でクローンするため、このパソコン上のフォルダーであるリモート(下記の OneDrive)には届きません。
大きなファイルとサービスの制限
制限。GitHub は 1 ファイル 50 MB から警告し、100 MB を超えるファイルを拒否します。GitLab、Bitbucket、Azure Repos も 100 MB を超えるファイルを拒否します。リポジトリ全体では GitHub は約 1 GB まで (最大 5 GB) を推奨し、Bitbucket の無料プランは 1 GB です。同期フォルダー (OneDrive、Google Drive) にはこの上限はありません。
コミットの時点で気をつける理由。制限は今のファイルだけでなく、履歴のすべてのバージョンに適用されます。120 MB のファイルが一度バージョンに入ると送信は拒否され、ファイルを削除しても古いバージョンにまだ含まれるため、拒否されたままです。
LightNote の動作。100 MB を超えるファイルは、アプリが保存するどのバージョンにも入りません (自動コミット、Ctrl+S、バージョンを保存、ウィンドウを閉じるときのコミット、スナップショット、スマートフォンの同期)。ファイルはフォルダーに残り、通知で Git で無視する (.gitignore) を選べます。50 MB を超えるファイルはステータスバーの警告付きで入ります。Git LFS の対象のファイル (リポジトリにはポインターだけを保存) は除外されません。
送信がすでに拒否された場合 (LightNote の外、ターミナルでバージョンを保存したとき)、Git パネルがそう表示します。ファイルを削除しても解決しません。まだ送信していなければ、ステータスバーの Git メニューの詳細 → git コマンドを実行…で reset @{u} を実行します。未送信のバージョンが取り消され、ファイルはそのまま残ります。大きなファイルを .gitignore に入れてから、もう一度バージョンを保存してください。ファイルをリポジトリに残すには Git LFS (git-lfs.com) を使います。
ほかのサービス、OneDrive/Google Drive、自分のサーバー
ほかのサービス。Git はどのサービスでも同じように動き、違うのはリポジトリを作る場所だけです。よく知られているのは、GitLab(gitlab.com、無料、プライベートリポジトリは 1 つあたり 10 GB まで)、Bitbucket(bitbucket.org、5 ユーザーまで無料、合計 1 GB)、Azure DevOps(dev.azure.com、Microsoft、5 ユーザーまで無料、プライベートリポジトリは無制限)、Codeberg(codeberg.org、非営利ですがオープンソースのプロジェクト専用で、プライベートなノートには向きません)です。そこで空のプライベートリポジトリを作り、アドレスをコピーして、バックアップと同期の画面でほかのサービスを選びます。プランの制限は変わることがあるので、各サービスのサイトで確認してください。
OneDrive、Google Drive、Dropbox なら新しいアカウントは不要です。同期フォルダーを選び、このコンピューター上のサービスのフォルダー(例: C:\Users\あなた\OneDrive や G:\マイドライブ)を指定します。LightNote はその中にベアリポジトリ(作業ファイルを含まず、バージョンだけを保存する Notes.git フォルダー)を作り、リモートとして使います。そのフォルダーのコピーはクラウドサービスが行います。もう一台では、フォルダーが同期されて現れるのを待ってから、そのパスを貼り付けてファイル → Git リポジトリをクローン...を使います。同じ方法は、バックアップ用の USB メモリーやネットワークフォルダーにも使えます。
- なぜノートのフォルダー全体を OneDrive に入れずにベアリポジトリを使うのか? 作業中、
.gitフォルダーは絶えず変わります。二台のコンピューターがそれをクラウドで同期すると、壊れることがあります。ベアリポジトリに書き込むのは送信だけで、書き込んだものはその後変わりません。 - 一度に一台だけ。もう一台で作業する前に、OneDrive や Drive の同期が終わるのを待ってください。その前に両方から送信すると、競合したコピーができることがあります。これが頻繁に起きるなら、GitHub のほうが安心です。
- 作業フォルダーがすでにクラウドにある場合(Windows はドキュメントフォルダーを OneDrive に置くことがよくあります)、画面が警告します。一台だけなら OneDrive がバックアップの役割を果たします。複数台で使うなら GitHub を選ぶか、ノートのフォルダーをクラウドの外に出し、クラウドにはベアリポジトリだけを置いてください。
- Git なしでもできます。ノートのフォルダー全体をクラウドサービスで同期し、バージョン管理はオフのままにします。ローカル履歴が各ファイルのバージョンを保存し続けます。スマートフォンでのノートで紹介している方法です。
自分のサーバー。どの企業にも頼らないなら、自分で Git サーバーを運用できます。Gitea と Forgejo は軽量で、GitHub に似た Web 画面があり、Docker で動きます。自宅のコンピューター、Raspberry Pi、NAS、レンタルの VPS などに置けます。いちばん簡単なのは、SSH が使えるサーバーに git init --bare でリポジトリを作る方法です。その代わり、サーバーのインストール、更新、バックアップは自分で行う必要があります。インストール手順は各プロジェクトのサイトにあります。サーバーができたら、リポジトリのアドレスはほかと同じようにほかのサービスに入れます。
目次
編集
- 概要
- はじめに
- ワークスペースとウィンドウ
- アクティビティセンター: タスクとメッセージ
- コードエディター
- Markdown とウィキリンク
- 図(Mermaid)
- 数式と化学(LaTeX)
- ノートの中のカレンダー
- 番号付けと相互参照
- 引用と参考文献
- 学術論文の規格
- コネクショングラフ
- テーブル(Parquet・CSV・JSON・Excel)
- 分析エリア: ピボットテーブルと複数のグラフ
- PDF と画像
- 画像:スクリーンショットに注釈を付ける
- HTML ページ(.html)
- 印刷
- フォルダーとしての Zip(.zip)
- ブロック(.lnb)
- タスク(カンバン / ガント)
- カスタムテーブル(.lnd)
- ベース(ノートの保存済みクエリ)
ツール
- ファイル内検索と未対応
- バージョン管理(やさしい Git)
- スナップショットとバックアップ
- 変更のレビュー(チェックポイント)
- ファイルの比較(差分)
- コードの実行(F5)
- ターミナルと AI CLI
- 選択範囲への AI アシスタント(Ctrl+K / Ctrl+I)
- お使いのコンピューターの AI
- AI セッション
- AI チャット
- HTTP API のテスト(.lnh)
- データベース(.lnc)
- SSH 接続(.lns)
- セキュリティ: セキュアフレーズ・PIN・セキュア Markdown
- デイリーノート・クイックキャプチャ・トレイ
- 古いメモを再発見
- スマートフォンでのノート
- 音声を録音(メモ・会議)して AI で文字起こし
- 付箋
- カレンダー
- コマンドパレット
自動化(AI / スクリプト)
リファレンス