kiyasuの日記

ハッピーうれピーよろしく哀愁

skyboxメモ

f:id:mojo_nobu:20210813080102p:plain

  • Cameraのinspectorにskyboxコンポーネントを設置してアタッチしたskyboxマテリアルは単に背景画像

f:id:mojo_nobu:20210813080225p:plain

  • LightingウインドウのScene/Environment/Skybox Materialに設定して、その下のEnvironmentLighting/SourceをSkyboxにすると環境光skyboxはtint colorになる。

f:id:mojo_nobu:20210813080334p:plain

  • EnvironmentLighting/SourceをColorにするとその色になる f:id:mojo_nobu:20210813080728p:plain

  • Sun SourceにDirectional Lightを設定すると、そのLightを太陽として、傾きに応じて夕方になったりする(対応したskyboxの場合のみ。procedual skyboxなどというらしい)。Sun Sourceを設定しなくても、シーンにDirectional Lightがひとつあると勝手にSunになってる気がする。(Unity2019.4.26f1)

外付けSSDを買った

シーケンシャルアクセスが早いと高画質動画みたいな大容量ファイルを扱うのが早い、ランダムアクセスが早いと細かいファイルの読み書き速度が向上し、操作性向上にはこちらの方が良いらしい。自分の用途的にランダムアクセスが早いやつを探そう、と思ったけどそういうのって外付けSSDのスペック表みたいなのには記載されてなかったりする。自作PCSATAで組み込むようなやつにはちゃんと書いてあるので、外付けUSB接続のSSDでランダムアクセス気にするのが間違ってるのだろう。出過ぎた真似、というやつか。

書いてないなら仕方ない、ネットで探して評判のいいやつを適当に買いました。

これをつなげるとexFATになっていたので、NTFSでフォーマットしなおす。macにつなげる気はないし、パフォーマンス重視。SanDisk SecureAccess というのが入っていたが使わないだろうからいいや。

フォーマットはすぐ終わった。

速度を図ってみよう

CrystalDiskMark – Crystal Dew World

Crystal Disk Markをインストール。使い方

さあ結果は!?Cがノートに最初からSSD(ASU800SS-960GT-B)、Dがさっき買ってきたSSDです。

f:id:mojo_nobu:20210722163122p:plainf:id:mojo_nobu:20210722163125p:plain

データの読み方

そんなに良くはない!w USB接続だとこんなもんですかね。あとは使ってみます。

[その他参考]

https://ascii.jp/elem/000/001/054/1054005/

NTFS・FAT32・exFATの違い – ファイルシステムについて│パソコン実践BLOG -道すがら講堂-

https://for-money.com/difference-between-ntfs-and-exfat/#NTFS%E3%81%A8%E3%81%AF

軍艦島デジタルミュージアムでHoloLens!

軍艦島はずっと前から行きたいなー!と思っていました。せっかく近くまできたんだし…行くしかない!ということで直前にツアー予約!したんですが当日は時化のため、軍艦島は上陸はできず船で周遊するだけになっちゃいました。そういうこともあります。それでも長崎港付近の文化遺産の紹介や歴史が面白くて満喫しちゃいました。自分は歴史はとんと疎くて特に近代史はさっぱりだったんですが、クレーンって世界遺産になるんだ…とか三菱すげえ…、みたいなシンプルな驚きをしてしまいましたね。

https://www.gunkanjima-concierge.com

軍艦島ともう一つお目当てだったのが、軍艦島デジタルミュージアムでやっている「MRホロレンズ体験 軍艦島のガンショーくん~かがやくブラッグダイヤモンドを探せ~」です。これはHoloLens2ではなく初代HoloLensで体験するコンテンツですね。

https://www.gunkanjima-museum.jp/data/hololens/

ミュージアムの3階と4階に配置されたCGの軍艦島の生活の様子やアイテムを見つけて獲得するポイントでパートナーの「ガンショーくん」を強化するパートと、強化したガンショーくんとともに炭鉱で鉄鋼を掘りまくるパートの2パートで構成されるコンテンツでした。 シェアリング、空間認識、外部コントローラー連携、タブレット連携といった、HoloLensのあらゆる機能を使ったリッチな体験。初代HoloLensの視野角の小ささが全く気にならないほどの没入感でした。自分はソロ参加でしたが、複数人参加した時どういう体験になったのか気になるとこ。

軍艦島デジタルミュージアムは他にもVR空中遊泳や巨大LED映像、ジオラマと映像連携など、かなり遊べる施設でした。軍艦島って廃墟のイメージが強かったんですが、住んでいた人は当時最先端の裕福な暮らしをしていたそうで。それはそれでロマンがありますね。楽しかった!

島原城でHoloLens!

はるばるきたぜ島原!海辺を走る島原鉄道が気持ちいい。仕事で遠出したついでに島原で天草四郎に会ってきました。

https://shimabarajou.com/shimabara-castle-mr/

島原城天守閣受付にて「MRやりたいんですけど…」と言うと奥からHoloLens2持ってきてくれます。位置合わせをしてもらったHoloLens2を装着して、階段登ったらスタート! 画面の指示に従って目の前に光る十字架に向かって手を合わせると「求めよ、さらば与えられん…」のセリフとともに天草四郎(CV 石田彰)降臨!

最初はチュートリアルのようになっていて、天草四郎からロザリオを受け取ったり、3Dスキャンされた高精細なガラス細工や眉山焼(だったかな?)のモデルを手元で拡大したり回転させたりできます。僕は天草四郎の話を聞きながらカステラを極限まで拡大するのに夢中になっていました。

MR体験の内容は、島原城のフロアを天草四郎について一周し、ポイントごとに天草四郎(CV 石田彰)から島原でのキリスト教の歴史を聞く、というもの。内容は結構重いが、天草四郎のキャラクターが魅力的でひだの付いた襟をニコニコ自慢したり解説ポイントでの合流時にこちらを気遣ってくれたりする。天草四郎に触れるとキラキラっと光る。マリア像や踏み絵など重要アイテムが都度渡されて自分で拡大してグリグリできる。この文化財を手元でグリグリできる、というのがシンプルだけどよかった。

最後は幕府軍が出てきて、さあどうなる!

という参加型コンテンツでした。悲劇の美少年としての天草四郎がかなり身近に感じられる展示でした。

島原城は他にもVR展示があったり謎解きゲームがあったり、城だけではなく島原の歴史もわかるのでボリュームタップリです。個人的には眉山の山体崩壊の後、復興時には教育に力を入れたとか、そういう当時の大人の力強さを感じるエピソードにグッときましたね。

https://shimabarajou.com

iMac Late 2013で1440pの外部ディスプレイを使いたい→使えました

(6/19 追記)下記のこのケーブルで無事1440p出ました。プラグアンドプレイ、何も設定せず繋げるだけでOK。プラグアンドプレイ、最高。

www.amazon.co.jp


go-rudenuxi-kuに部屋のレイアウト変えて、DELLのディスプレイも買った。

これ。

kakaku.com

値段が上がったり下がったりしてるけど、DELLの直販サイトの割引が結構変動しているようだ。今後DELL製品を買う時は覚えておこう。

このディスプレイをWindowsだけじゃなくiMac Late 2013でも使いたい。スピーカーとの位置関係の都合上、ミラーリングで使って机の上にはDELLのモニターだけ置くようにしたい。

iMacからはThunderboltポートしかないので、まずはmini DisplayPortとHDMIの変換アダプタを使って普通につなげてみたが、最大1080pまでしか選択できなかった。

f:id:mojo_nobu:20210605205415p:plain

late2013で1440pや4K出力したという報告はいくつかあるので、頑張ればできるはず。


Macの設定で頑張ってみる

Macのディスプレイ設定はaltキー押しながら「変更」を押すとより詳細な選択肢が出るらしい。

f:id:mojo_nobu:20210605205709p:plain

うーん、増えたけど最大は1080pのまま。

今回ミラーリングで使用するので、iMacの設定をDELLディスプレイにも適用してみる。

f:id:mojo_nobu:20210605205947p:plain

ディスプレイは1440p相当の広さになったようだが、どうにも滲んでいて目が疲れる。多分だけどMacDELLのディスプレイを1080pと認識しているので、画面もMac内で1440pの広さを1080pに圧縮したものを出力しているような感じ。

ケーブルの確認

ケーブルを見直してみる。Windowsからディスプレイへ直接HDMIで出力すると、ちゃんと2560*1440で出る。

次にiMacと同様にmini DisplayportとHDMIの変換アダプタを使って接続すると、2048*1152までしか出ないVGA相当の解像度しか出てない。

とりあえずケーブルに問題があるようだ。

いったん情報を整理する

iMac Late 2013についているThunderboltのバージョンは1で、これはDisplayPortの1.1aに相当する。

Mac のポートを調べる - Apple サポート

Thunderbolt - Wikipedia

DisplayPort1.1aは、色空間に制限があるものの1440pまでいけるようだ。

DisplayPort - Wikipedia

どのケーブルが良いのか。

Amazon.com: Cable Matters Mini DisplayPort to DisplayPort Cable in White 6 Feet(Manufacturer Discontinued): Computers & Accessories

この商品のレビュー。

This cable is what you need if you want to use a DisplayPort device with a modern Mac product. In my case, it carries audio and 2560x1440 60Hz video between a 2012 iMac 27 (680MX) and a Dell U2713HM-IPS-LED display with no issues whatsoever. It was completely plug-and-play.

However, if you will be using this in a chain with other devices you may experience problems with the shroud around the Mini DisplayPort end. The shroud around the plug is substantially fatter than a Thunderbolt plug. The result is that even if a peripheral can be daisy chained with DisplayPort at the end, the plug may not physically fit if the ports are crowded close together or if the plug is recessed with only enough clearance for Thunderbolt spec cables.

注意点はあるが使えるらしい。

LGのディスプレイではダメだった、との報告もあるが…

I have a late 2013 iMac 27" and bought this to hook up to my new LG 27UK650-W (27" UHD) monitor. I was expecting to get 1440p (2560x1440) at 60 Hz -- the maximum the iMac will allow. The monitor's OSD (on-screen-display) menu complained about the cable (suggesting that I use a better cable to get better resolution) and it would only show 1920x1080 at 30 Hz. This is NOT recognized as a DisplayPort 1.2 cable -- at least by the LG monitor.

このディスプレイはもうディスコンのようなので、日本のAmazonでこれを注文しました。

www.amazon.co.jp

月曜日に届きます。

ケーブルがダメだったら

iMac Late 2013 で 4K ディスプレイ P2815Q を無理やり使えるようにする。

これを試そう。というか初期段階でこのページにはたどり着いてたんだけど、Catalinaだと設定ファイルの位置が変わってるぽいので気が進まない…

余談

一度どうやってもDELLのディスプレイにMacの映像が出ないことがあった。

Macが不調ならまず「SMCリセット」を。端末別の手順を紹介 | 株式会社キャパ CAPA,Inc. コーポレートサイト

これを参考にSMCリセットしたら画面出ました。

Oculus Quest2でLink試す

GW中に遅ればせながらOculus Quest2を買った。もっと積極的にVRで遊ぼうと思い。とりあえずLinkを試す。

Oculus Linkはいくつかある、PCのVRをOculus Quest上でプレイする方法のひとつです。

この辺に網羅的に書いてます。

www.moguravr.com

www.moguravr.com

とりあえず純正のLinkケーブルを買って有線でやってみようと思います。無線でやる方法もあるんですけど、昔Steam Linkだったかを無線でやって、微妙にラグがあったり解像度が落ちたりって感じだったんですよね。

調べてみると新しいwifi6に対応しているルーターがいいだとか、ちょっと変数が多くなるのも嫌だったので、とりあえず基準点となる「本来これくらいのものですよ」というのを体験しときたいと思います。

要件

support.oculus.com

昔はUSB3.0じゃないとダメだったそうですが、アップデートで2でもよくなったそうです。ただ接続テストでOKは出るものの「速度が出ないので3.0を推奨します」とか言われます。それを無視してそのままスカイリム起動してみたんですけど、ラグはなかったんですよねー。画面がボヤッとしてた気がするけど、ちゃんと比較したりはしてないです。

ケーブル

純正のこちらを書いました。

www.oculus.com

なんとあろうことか私のパソコン、USB Type-Cのポートがないんですよね。すっかりボケていました。なのでAからCへのアダプタが必要です。

とりあえず基準点となる「本来これくらいのものですよ」というのを体験しときたいと思います。

とか言ってたのに…アホかと。ヨドバシで何も考えずに注文したアダプタが普通に認識されなかったので、ここで腰を据えて調べてみることに。

blog.ver001.com

  • 純正のLinkケーブルはUSB 3.2 Gen1(実質USB 3.0)
  • 本来3mまでのところを光ファイバーで5mの長さを実現している

ということで、まあまあ特殊なケーブルっぽい。

動かなかったアダプタは説明書を読むと差し込みの上下で転送速度に差が出るタイプでした。

改めて上記のOculus Linkの要件ページを見ると

Oculus Linkで使用するUSBケーブルは、データ転送と電力チャージをサポートする高品質のものである必要があります

とのことで、データ転送、電力チャージこのへんを気をつける必要がありそうです。商品ページにこのあたり明記してないものは買ってはダメですね。


いろいろ調べてこれを書いました。で、動きました。

Amazon | UGREEN USB 変換アダプタ USB 3.0 to Type C 3.1 変換コネクタ オスーメス 急速充電 Quick Charge3.0 高速データ伝送 小型 軽量 高耐久 ストラップ付き | UGREEN | USBアダプタ 通販

3A急速充電と5Gbps高速データ伝送:VL160チップ、Type C 3.1 Gen技術を採用して、両方のプラグが最大5Gbpsまでのデータ転送ができます。また、USBアダプタは最大5V/3Aの電流を供給し、Quick Charge3.0および2.0 技術もサポートしております。

とのことです。とりあえずこれ念頭に置いておけばいいのかもしれない。

速度

f:id:mojo_nobu:20210516172248p:plain

とりあえずこれが速度。2.4Gpsです。実質5Gbpsではなくこんなもんなのかな?

www.reddit.com

ここでいろんな報告が見られる。ポートのタイプも併せて報告されていて、非常に有用なスレッドになってます。2.4Gbpsはそんなに悪くないようです。

gitメモ

なんかちょっと前からプライベートリポジトリへのアクセスのたびに毎回パスワード聞かれるなーと思いつつもやりすごしていたら、UPMからgithubリポジトリへアクセスする際にエラーが出てついに困ったことになりました。なあなあで続けてきたgitと僕の関係を見直す時が来たようです。ついでにSourceTreeもアンインストールしてコマンドラインで生きていきます。

これらのことはググってたら出てきますが時間が経つと当然のように忘れるので、ここに自分のためにまとめておきます。自分用メモというやつです。こんな私にも「いまさらgitの記事書くの恥ずかしいな・・・」などというプライドがあるのですが、そんなものは捨てておきます。

なんかgitは「git自体の使い方」「gitの設定」「リポジトリの設定」「認証」「git使う時のマナーや標準的なフロー」あたりが混在しているのがわかりにくい原因な気がする。


インストール

gitの現状の確認、整理

where git

windowsのコマンド です。これ使うと手元に複数gitがあったりしてびっくりしました。SourceTreeに同梱されてるgitがあったんですねえ。後述しますがSourceTreeはちゃんとアンインストールしないといろいろ残るようです。これらを一回全部消すことにします。

gitのアンインストール

windowsの「設定/アプリと機能」からアンインストールすればOK。この後再インストールしようとするとgitフォルダが残っていると言われるが無視してそこにインストールしても問題なかったです。

SourceTreeの削除

これもgitと同じく「設定/アプリと機能」からアンインストールできるんですが、それだけでは不十分なようです。上記のようにgitなどの関連ファイルが残ります。

SourceTree関連ファイルの削除

C:\Users[username]\AppData\Local\Atlassian 配下の SourceTree という名前が含まれているフォルダを全削除しましょう。

Windows の SourceTree を完全にアンインストールする方法 - 約束の地

SourceTreeクレデンシャル情報の削除

過去使用していた接続先やユーザーの認証情報がオプションの認証タブに残っています。

これは以前souretreeを再インストールしたときに見た問題です。今回はSourceTree消したままにするので確認はしてないのですが、対策を残しておきます。

Windowsの場合、SourceTreeの認証情報は「コントロール パネル\すべてのコントロール パネル項目\資格情報マネージャー」で管理しているようです。 資格情報マネージャーにアクセスの上sourecetree- で始まる資格情報の削除をお願いします。 削除後 sourecetreeからも削除されます。

SourceTreeの認証情報を削除することができない - RS アトラシアン製品 ユーザーコミュニティ

これで環境はクリーンになったので、次はインストールです。

Gitのインストール

Git - Downloading Package

ここからインストールします。途中の認証ヘルパーのoptionには「Git Credential Manager Core」(以下GCM Core)を選んでおきます。あまり使いこなせてないけど次のデファクトらしい。

確認

$git --version

でインストールしたバージョンと突き合わせて確認。

パスの確認

いまちょうどコミット済みのブランチがあるのでpushしてみます。

$git push
git: 'remote-https' is not a git command. See 'git --help'

おっと。これはremote-httpsというhttps通信するためのサブプログラムが見つからない、ということのようです。いかにも最初から入ってそうな機能なので見つからないのはおかしい。windowsで「git-remote-https.exe」をファイル検索すると普通に見つかりました。

C:\Program Files\Git\mingw64\libexec\git-core パスが通ってないようです。

サブプログラムのパスは以下のコマンドで確認します。

$git --exec-path
C:\Program Files (x86)\Git Credential Manager Core

この作業をやる前にいろいろやってた影響でここの値がおかしなことになってました。「Git Credential Manager Core」フォルダは今はもうないので(これはgitコマンドとは別にGCM Coreを入れたときに作られるフォルダ)、ここのパスを上記のgit-coreフォルダにします。これはWindowsの環境設定でGIT_EXEC_PATHに設定すればOKです。

Git - 環境変数

これでpushできました。インストールはこれでいいと思います。

Gitの設定ファイル

あまり見ることはないですが、概観書き記しておきます。

local, global, systemの3つのレベルがあってこの順番で優先されます。それぞれは以下のコマンドで一覧が見られます。

$git config --local -l
$git config --global -l
$git config --system -l

項目の設定方法は、

$git config --global credential.interactive true

でglobalレベルのcredential.interactiveがtrueになります。

Gitの認証

Git Credential Manager Core

これは現状使いこなせてないのですが、調べたことだけ書いておきます。

そもそもGCM Coreがインストールされているかどうかは

$ git-credential-manager-core version

を実行してみましょう。この結果が"bash: git-credential-manager-core: command not found"なら、インストールされていないか、されているがパスが通っていないか、です。インストールされている場合は" C:\Program Files (x86)\Git Credential Manager Core"にあると思います。

Credential Manager Core not a git command. See `git --help` . · Issue #144 · GitCredentialManager/git-credential-manager · GitHub


GCM Coreの概観、httpssshの違い、ファーストステップについてはこちら↓のページ

Git Credential Manager Core: Building a universal authentication experience | The GitHub Blog

具体的な使い方はこちら↓のページ

git-credential-manager/configuration.md at main · GitCredentialManager/git-credential-manager · GitHub

とりあえず最初の段落だけ読んでみました。

  • GCM Coreの設定はgit標準の設定ファイル(git config --local -lで見られるやつ)に記述される
  • その場合「credential.***」となっているのがGCM Coreの設定変数
  • local>global>system に加えて、各リモートurl別に設定もあるようだ
  • ほかにもGCM特有の変数があり、これはconfigurationファイルよりも優先される。GCM_*** という名前のようだが、どこに記述されるものか不明

$git config --global credential.helper manager-core

でGCM Coreをcredential helperとして設定することができる。

$git config credential.helper

で現在のcredential helperを確認できます、とのこと。

git自体の使い方

最初にやること

$git init

なにはともあれ

.gitignoreの作成

普通にテキストファイルを作って.gitignoreにリネームして中身を書く/コピペして持ってくる

gitignoreは変更した後、基本的には手動で反映処理とかはしなくていいっぽい。ただすでにgitの管理下に入っているファイルについてはキャッシュが残っているらしく、その場合はgitignoreの更新に合わせてキャッシュの削除をする必要がある。

$ git rm -r --cached . //ファイル全体キャッシュ削除

または

$ git rm -r --cached [ファイル名] //ファイル指定してキャッシュ削除

$ git add .

.gitignoreに記載したのに反映されない件 - Qiita

ケースバイケースなのかもしれませんが。

.gitignoreメモ

.gitignoreは複数のディレクトリに設置でき、それぞれ設置場所をカレントディレクトリとしてそこからの相対場所に設置できる。

/[Lli]brary/

.gitignoreが置かれたフォルダ上にあるLibraryフォルダしかignoreされない。

[Lli]brary/

.gitignoreが置かれたフォルダ以下、すべての場所でlibraryフォルダがignoreされる。

[Git] .gitignoreの仕様詳解 - Qiita

現状確認

$git log

今のブランチのコミットログを表示する。

$git status

変更済みファイル、gitの管理下にないファイルなど、現状を一覧する。新規追加してまだステージングされていないファイルなどをこれで確認する。

$git diff
$git diff --name-only

git diffは変更箇所もまとめてバーっとでる。--name-onlyオプションで変更のあったファイル名のみ表示する。

$git branch

ローカルのブランチ一覧。現在地には*が付く。

ブランチ操作

$git checkout <ブランチ名>

ブランチ切り替え

$git checkout -b <ブランチ名>

新規ローカルブランチを作りそのブランチに移動する

Gitコマンド(ブランチの作成) - Qiita

$git checkout .

これで現ブランチで前コミットからの変更内容を取り消しできる。

$git checkout --force <ブランチ名>

自動生成ファイルとかでどうしても変更点が残ってしまいcheckoutがうまくいかないときは--forceを付ける

↓はほかの人がプッシュしたなどで、remoteにあるけどlocalにないbranchにcheckoutしたいときに行う。

$git fetch origin <ブランチ名>

$git checkout <ブランチ名>

リモート追跡ブランチ作成してからローカルに作る

【Git】リモートブランチをチェックアウトしたいときは「git fetch origin <ブランチ名>」と「git checkout <ブランチ名>」を実行すれば良い | DevelopersIO

ステージング

$git add <ファイルパス>

modifiedをまとめてコミットしたいときは

git ls-files -z --modified | xargs -0 git add

こう。(多分。未確認)

git diff --cached --name-only

add済みのファイル一覧。--name-onlyが無ければファイルの中身のdiffまで表示

コミット

$git commit -m "メッセージ本文"

コミット取り消し

git reset --hard HEAD^

[Git]コミットの取り消し、打ち消し、上書き - Qiita

プッシュ

$git push --set-upstream origin feature/hoge

リモートリポジトリに対応したブランチがない時の方法。

削除

$ git rm ファイル名

ファイルを削除して、gitの管理から外す。
ファイルが残っていて、前回のcommitから変更されていたらエラーになる。この時は

$ git rm -f ファイル名

で変更内容ごと削除する。自分が使う時はこれで問題なさそう。

$ git ls-files -z --deleted | xargs -0 git rm -f

これは状態がdeletedのものを全てgit rmする。これも良く使いそう。ファイルがdeletedされたらそれ以降はgit管理から外すのが自然(だよね?)

"git ls-files -z"のzオプションとxargsの-0オプションは「デリミタにヌル文字を使うよ」という約束。これでファイル名にスペースが含まれていても大丈夫。

マージ

masterマージにdevの変更を取り込みたい場合、

git checkout master

まずmasterに移動してから

git merge dev

devを指定する。特にしていなければこのまま。

特定のコミットだけマージ

(あくまで前コミットとの差分だけマージするときに使う)

$git cherry-pick <コミットハッシュ>

現在地でないブランチのログを調べるには

$git log <ブランチ名>

特定のブランチのある地点の状態をマージしたい場合

git checkout <コミットハッシュ> -b <新ブランチ名>

でブランチ作ってから、マージする。

コンフリクト

CONFLICT (modify/delete):... といくつか出た。これは最新版でいくつかファイルが追加されているけど、もとのブランチにこのファイルは存在しないからdelete、みたいな感じのようだ。

素直に各ファイルを

git add "xxx"

してコンフリクト解消したら

git cherry-pick --continue

すればOK。コミットメッセージの編集画面(vi)に自動的に遷移したけど編集せずにそのまま出した。

もしくは、全部相手側の変更を優先したい、となった場合は(自分はこのパターンが多い)

$ git checkout --theirs .

こうすればよい。そのあと

$ git add .
$ git commit

などとやる。

[git]マージ時のコンフリクトで片側の変更だけ適用する方法 - Qiita

取り消しあれこれ

addしたファイルを取り消したい

$git diff --cached --name-only

addしたファイル一覧を見る。

$git rm --cached -r ファイル名

ファイル名を指定してindexから取り消す。

変更箇所を全て取り消す

$git checkout .

ただし新規追加したファイルは削除されない

忘れやすい人のための git diff チートシート - Qiita

Git で特定のコミットをマージする方法メモ - Qiita

【Git】特定のブランチの git log を見たい - Qiita

submodule

基本的にはこの辺

自分が必要とする最低限の git submodule の知識 - Qiita

Git submodule の基礎 - Qiita

  • まず.gitmoduleがあるか確認する。あればcatなどで中身を見てみる
  • なければ自分で作る

git submodule add "git:xxxxxxxxxxxx.git" {path}
git submodule update --init

必要なら--recursiveもつけてサブモジュールのサブモジュールも対象にする

git submodule update --init --recursive

あとはサブモジュール管理下になっているフォルダに移動してgitコマンドを試してみる

git status

または

git log

など。これで親になっているリポジトリの情報が出てくるならサブモジュールになっていない

git submodule update --init

を忘れているかも

その他

detached HEAD

HEADというのは「今自分がどこを見ているか」なわけですが、本来

HEAD -> (branch) -> (commit)

となるはずのところ

HEAD -> (commit)

になっているのがdetached HEADの状態。自分がdetached HEADになるときは大体「現在のブランチの過去コミットに戻るとき、git chenckout (commit)」にしたとき。なのでここではHEADを本来のブランチに戻す操作を書き残しておきます。

まず自分が今見ているcommitのハッシュ値を調べる

λ git rev-parse HEAD
λ [ハッシュ値]

もしくは

λ cat .git/HEAD
λ [ハッシュ値]

でも良い。次にこのコミットが含まれるブランチ名を調べる

λ git name-rev [ハッシュ値] λ [ハッシュ値] dev

どうやらdevブランチのようだ。

λ git checkout dev

あとはこれでOK

参考 :

detached HEAD から脱出する方法を git の内部構造から探る - Qiita

configまわり

プロジェクトごとに手元のPCからコミットするアカウントを変えたい

configの設定確認は以下で行う

git config -l # 現在有効になっている設定一覧
git config --local -l # 現在いるプロジェクトのlocalファイル(.git/config)に書かれている設定一覧
git config --global -l # global(~/.gitconfig)に書かれている設定一覧
git config --system -l # systemに書かれている設定一覧

ファイルの編集は"-e"を付ける

git config -e # ローカルの設定を変更
git config --global -e
git config --system -e

項目別作業

git config --local user.name # local設定に書かれたuser.nameを表示 git config --local user.name nobu2 # local設定に書かれたuser.nameをnobu2に変更

Gitの設定をgit configで確認・変更 | note.nkmk.me

随時更新。