なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ 書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

Git

Git で歴史ごと複数のリポジトリを1つのリポジトリにまとめたい

Git

例えば Node.js モジュールを書いていて、リポジトリ A と B があったとして、それをモノレポ C としてまとめたかったとします。 そういうときはファイルをコピーして新しいリポジトリに入れる方法もありますが、履歴を引き継いだ状態でやりたくなったので、…

CI 上の Git 操作で差分があるときだけcommit したい

Git

GitHub Actions などで、ファイルを定期的に自動生成して、 commit & push する場面がちらほらあると思います。 そのとき、適当な外部の Action を使っても良いですが、そこまででもないな......というときのためのメモ。 自動生成して commit & push する場…

違うファイル同士でも git diff で差分を表示したい

Git

Windows だと diff コマンドがそもそも入っていなかったり、オリジナルの diff コマンドのパラメータ覚えてなかったりで、 git diff の形式で差分が見たいケースがあるとき。 そういうときは、次のようにすると何の関係の無いファイル同士でも差分が見られる…

Lefthook の pre-push イベントでブランチ名を受け取る

Git

Lefthook という Git Hook をうまいこと管理してくれる Golang 製ツールがあります。 メリットとしては、 Node.js に依存しない、つまりはランタイムが必要ないことがあげられ、また設定も lefthook.yml を記述するだけなので、簡単に使えるという特徴があり…

Windows で Git のテストを実行する

なんとなく git/git をソースからビルドしてデバッグすることになりました。 そして PR (最終的にはメーリングリストになげる) を投げつけたのですが、 CI が落ちてつらい。ドキュメントに無かったぞ。 ということで、 Windows で git のテストを実行する方…

Windows で Git をソースコードからビルドしてデバッグする

なんとなく git/git をソースからビルドしてデバッグすることになりました。 README や Wiki が古かったりして、結構詰まったので、やり方。 まず、 Visual Studio 2022 (or 2019) で、 git/git をクローンした場所をフォルダーとして開きます。 開くと、「C…

Git でとあるディレクトリ以下の履歴を引き継いだ状態で新しいリポジトリに切り出したい

Git

例えば、何らかの理由でリポジトリのこのディレクトリ以下の部分だけ別リポジトリで管理したいな~!って場合のやり方。 履歴を引き継がなくてもいい場合はそのまま新しいリポジトリがある場所にコピーすれば良いんだけど、履歴も引き継ぎたい場合。 やり方…

git checkout で、直前にチェックアウトしていたブランチに戻りたい

Git

たとえば以下のような操作をした後、もともといたブランチに行きたい場合: $ git symbolic-ref --short HEAD main $ git checkout sub-branch $ git symbolic-ref --short HEAD sub-branch 次のような操作を行うことで、元いたブランチ、今回の場合は main …

Keybase の GPG 鍵を GitHub でも使いたい

Git

わたしは GPG 鍵は基本的には Keybase に管理を任せているのですが、 Keybase で管理している鍵で GitHub のタグに対して署名したかったので、その方法について。 まずは scoop 経由で gpg をインストールしておきます。 すでに入っている場合はスルーで OK…

Git で大文字小文字の変化を認識させたい

Git

Windows とか macOS とかで使う分には、ファイルシステム的に大文字小文字を無視しても良いんですが、 Linux だと大文字小文字は無視できない違いになります。 ただ、 Windows とかから大文字小文字だけを変えたものを commit しても認識されないので、それ…

Git LFS サーバーを自作して、 S3 などのストレージにデータをストアしたい

みなさん Git LFS を使用していますか? わたしは VRChat のアバタープロジェクトをまるまる GitHub へあげているついでに、 Git LFS で 3D モデルやテクスチャーも状態を保存しています。 そこで困るのが、 GitHub のストレージ課金です。 50GB で 60USD/ye…

Git の各種コマンドで条件を満たすパスを非表示にしたい

Git

git status だとか git diff だとかで、たまに Git でトラッキングはしたいけども、 コマンド実行結果上は一時的に非表示にしたいファイルがあるときがあります。 そういうときは、 pathspec を指定することで、表示するファイルを制御することが可能です。 …

Git LFS で Unity プロジェクトを Git 管理する

VRChat でアバターいじったりするのは良いのだけども、 バージョン管理されないのが怖いので Git を導入したのでそのログです。 基本的に、多くのファイルは Git LFS (Large File Storage) を使って管理することになります。 Git Large File Storage Git for…

GitHub で diff を表示しないようにしたい

Git

Node.js を使って GitHub Pages を作るときなど、必然的に minify されたファイルや コンパイル済みファイル、バイナリファイルなどを commit する必要がある場合があります。 そういったとき、テキストデータとして表示可能な物は、 diff に表示されてしま…

Git で fatal: index file smaller than expected

Git

git status しようとしたら、「fatal: index file smaller than expected」と怒られた。 原因は、多分仮想マシンが落ちたからだと思うけれど、直し方をメモしておきます。 以下作業ログ リポジトリディレクトリは ~/lepus とします。 $ git status fatal: in…