git

grep で前後の行も表示する

B -A が before, after のオプション。-B 3 -A 3 は単に -3 でも同じ。-C は -2 つまり -B 2 -A 2 と同じ。 mathlib > git branch * master mathlib > git rev-parse master 8618f40d51539454fe06511d5c8504a77f30c598 mathlib > grep -A 3 -B 3 8618 ..\..\…

mainが決まるとき。ステージングでもオブジェクトは作られる。

git

git init 直後HEADの内容: ref: refs/heads/mainmainという名前はここで決定されて、その後も使われる。初期化しただけでは ./.git/refs/heads/ は空で、HEADの参照先である ./.git/refs/heads/main は存在しない。git add README.md しても見た目上の「リ…

パッケージとビルドで確認すべきこと

cat lean-toolchain elan toolchain list elan show だとダウンロードが始まる cat lakefile.lean cat .git/HEAD デタッチされているか? git branch git rev-parse カレントブランチ git tag git rev-parse $(git tag | tail -1) git log --oneline git rev…

ローカルとリモート

git

まず、通常リモートブランチと呼ばれているものが「リモート追跡ブランチ」のことがある。「リモートに対して云々」は、ほんとのリモートサーバー側のこともあれば「リモート追跡ブランチ」のこともある。登録されているリモートの一覧は: git remote -v (…

git ls-files

git ls-files --stage と git ls-files --cached は同じファイルをリストする。表示が違うだけ。 git ls-files --cached ファイル名だけ git ls-files --stage ファイル名以外に、オブジェクトID、ステージ数〈staging number〉、モード ホントにダメなコマ…

関与の有向グラフによる表現

直接的な関係を意識せずに考えていた次のようなトピック、 git JavaScriptのモジュール方式(CJS, ESM) NPMパッケージ 概念設計とコース設計 ストリング図とオープングラフ などが、同一の問題なのだと気付いた。有向グラフの取り扱いと利用法の問題だった…

dedup

「デダップ」か「デデュープ」かな。de-dupulication の省略。「同じものを重複して持たない」という原則と、そのための行為がdedup。gitはファイル内容レベルで究極的なdedupをしている。最近のNPMは、パッケージのdedupをしているらしい。何をもって「同じ…

グラフ概念の汎用性

gitでは コミットグラフ ファイルツリー オブジェクトグラフ などが出てくる。ソフトウェアの依存性では: モジュール依存性グラフ パッケージ依存性グラフ もっと細かい粒度では: 関数コールグラフ コールグラフは静的な関係性だけだから、実行時には フロ…

続・gitと言霊

git

git、言霊おそるべし - (新) 檜山正幸のキマイラ飼育記 メモ編 の続き: 「戻る」とか「進む」とかの言葉/イメージも邪魔になるのかも。 「戻る」とか「まとめる」とかじゃなくて、単にスナップショットがリストアされるだけ。 ポインター=ID参照の向きと…

アンステージ、削除、リセット、リストア

gitの誤認例:.gitignore, --squash - (新) 檜山正幸のキマイラ飼育記 メモ編 にて: 今まで、変な説明を見ても記録しなかったが、これからは記録に残そう。 https://qiita.com/ryosuketter/items/a6047b0270ea999fd51b 今回は、ステージングエリアから、ワ…

まだ続くgitの誤解要因

まとめをしたが → gitの理解を妨げる要因のまとめ - (新) 檜山正幸のキマイラ飼育記 メモ編 、まだ続く。誤解要因は: 最高のメカニズムを最低のコマンドとして提供している。 最低のコマンドに誑〈たぶら〉かされている。例: git merge --squash, git rm, …

gitの誤認例:.gitignore, --squash

gitのキャッシュ? ステージ? インデックス? - (新) 檜山正幸のキマイラ飼育記 メモ編 を書いたキッカケは: https://zenn.dev/unemployed/articles/git-github-team 「間違えてアップしたファイルを.gitignoreで削除する方法」という記述がある。どうも、…

gitのキャッシュ? ステージ? インデックス?

git

「キャッシュにインデックスが残っている」 「キャッシュを削除する」 とかの言葉を見かけた。コマンドラインは: # ファイル全体のキャッシュ削除 $ git rm -r --cached . コメント文言「ファイル全体」は「すべてのファイル」の意味。日本語が不正確で困る…

gitの理解を妨げる要因のまとめ

雑多だが、一応まとめる。 変更不可完全追記式ストレージ スナップショット保存、差分管理はしない。差分は計算する。 ロールバックやロールフォワードはしない。まるまるリストア。 HEADが最新コミットを指すとは限らない。detached HEAD もある。 ブランチ…

git、言霊おそるべし

git

git、誤認誘導的表現 - (新) 檜山正幸のキマイラ飼育記 メモ編 の続き。git merge --squash の説明がほとんど「複数のコミットをまとめてマージする」のようになっている。スカッシュ〈squash〉して合併する〈merge〉だから、そうなるが、これは単に言葉から…

git、メカニズムと運用方針の混同

git

以下は https://ics.media/entry/14449/ にあった図:間違いだと言うつもりはないが、誤認誘導的〈misleading〉ではある。「親ブランチ」「子ブランチ」という言葉を使っている。気持ちは、基底ブランチと派生ブランチだと思う。が、ブランチを、コミットノ…

git、誤認誘導的表現

git

ブランチ全体をマージせずに、特定コミットだけを取り込む 意味不明。マージは2つのコミット(のファイルツリー)に対する操作。「ブランチ全体をマージ」なんてない。が、おそらく「ブランチヘッドであるコミットを対象とするマージ」の意味だろう。「取り…

rgit: ひどい例

git

なにかをリストする例 git tag : -l または --list でもよい。 git config --list : オプション必須 -l も可、オプション省略は不可 git stash list : オプションではなくてサブサブコマンド方式、--list は不可 git stash : git stash save と同じ。 n…

gitに対する不安・恐怖と、要因と対処

git

リポジトリを壊してしまうのではないか? 原理的にあり得ない。変更不可完全追記式ストレージだから。 ラベルを壊してしまうのではないか? これはあり得る。ブランチラベルを削除すると、参照先オブジェクトが見つけにくくなる。が、オブジェクト自体は存在…

git用語の曖昧語

オブジェクトIDを何と呼ぶか? ID : 省略 オブジェクト : 識別子と参照対象物を同一視 リビジョン番号 : コミットオブジェクトの場合はそうなる コミット : 識別子と参照対象物を同一視、かつ参照対象物が特定のタイプのとき SHA-1 : オブジェクトIDの…

rgit: rational git

git

gitのコマンド体系がひどいので、rational なものを考える。 rgit 操作対象物 動詞 オプション 引数 操作対象物は: current: HEADラベルとワーキングツリーのこと branch-label: .git/refs/heads/* のラベルのこと index: .git/index のこと object: .g…

vscodeのタグ付け

VSCodeのタグ付けは常にtagオブジェクトを作る重量タグ付けになってしまう。 軽量タグ付けはコマンドラインからやるしかないようだ。

gitのクリア化 用語の適正化

git

gitのダメさ - (新) 檜山正幸のキマイラ飼育記 メモ編 (ダメだ) gitのクリア化 - (新) 檜山正幸のキマイラ飼育記 メモ編 (クリアにしよう) というわけで適正化。まず、「ブランチ」って言葉: リポジトリの全コミットグラフをハッセ図として、時間方向の…

gitのクリア化

git

gitのクリアな説明のために必要なことをまとめていく。 オブジェクトグラフ: コミットグラフとファイルツリーを一緒にしたもの コミットグラフ: コミットをノードとするグラフ ファイルツリー: ツリーオブジェクトとblobオブジェクトをノードとするグラフ…

tig

ビューイングにはいいが、CRUD操作は満足にできないので、生のgitコマンドを叩くことになる。tigキーバインドと生コマンドラインが混じるので、中途半端で良いソフトウェアとは言い難い。ビューイング〈閲覧 | インスペクト〉専用と考えたほうがストレスがな…

gitのダメさ

基本アイディアと機能は秀逸だが、コマンドライン・インターフェースの分かりにくさ、説明の曖昧さは悪評が絶えない。名前が不適切。 HEAD は CURRENT だろう。 push, pull が対称ではない。send, fetch と push, pull だろうが、対称化した push = send and…

git使用の方針(一人作業)

違う理由の変更を持つ複数のファイルをひとつコミットに入れない。 同じ理由の変更なら複数のファイルをひとつコミットに入れても問題ない。 変更点を説明するコミットメッセージが、コミット全体に対して適切であるか? が目安。 ファイナル数が問題ではな…

アカウントとリポジトリ間接続

まさに気付いたことだが; アカウントデータベース - (新) 檜山正幸のキマイラ飼育記 メモ編 で、アカウントは、二部グラフの有向辺として定式化できると書いたが、gitの構造もグラフ構造で定式化できるだろう。git自体のグラフ的解釈は、本編 もうGitは怖く…

git使用の方針(一人作業)

違う理由の変更持つ複数のファイルをひとつコミットに入れない。 同じ理由の変更なら複数のファイルをひとつコミットに入れても問題ない。 変更点を説明するコミットメッセージが、コミット全体に対して適切であるか? が目安。 ファイナル数が問題ではなく…

git 常用コマンドライン

短く表示する。エイリアスするといいかも。 git status -s または git status --short git log --oneline --graph git log の --decorate オプションは、現在は無意味(昔は意味があったが)。