macで閉じてもスリープしない
//スリープを無効
sudo pmset disablesleep 1
//スリープを有効
sudo pmset disablesleep 0
git
flowchart BT subgraph ローカル環境 subgraph remoteBranch["リモート追跡ブランチ"] origin/hoge upstream/hoge end subgraph localRepo ["ワーキングディレクトリ"] end subgraph index["インデックス (ステージング)"] ローカルブランチ end subgraph alias["リモートリポジトリエイリアス"] origin upstream end end subgraph Github リモートリポジトリ end localRepo <-->|add,commit| index <---|merge,rebase| remoteBranch alias<-->|fetch,push,pull|Github origin/hoge --->|push| origin upstream/hoge <---|fetch| upstream
一番最初だけ
git init
接続先の設定(他リポジトリに付け直すは.gitを削除する)
git remote add origin "push先のアドレス"
設定確認
git remote -v
アップロードするファイルの指定
git add -A #全ファイル git add ”ファイル名”
変更点のメッセージ
git commit # vim的なので編集 git commit -m “メッセージ”
初回プッシュ ※-u: --set-upstream トラッキング設定(コミットの差分管理)
git push -u origin master
ローカルリポジトリのリセット
.gitファイルを削除 →再度git init
ブランチの作成
git branch ”ブランチ名”
ブランチ一覧の確認
git branch
選択的にトラッキング設定(リモートリポジトリのhoge-branchにトラッキング設定)
git branch -u origin/hoge-branch
ブランチのポインタを強制的に変更(HEAD位置から2つ前に)
git branch -f "ブランチ名" HEAD^^
ブランチの変更
git checkout ”ブランチ名” ※現在のブランチの変更をコミットしないとブランチ変更できない
リモートリポジトリのブランチにPush ※origin:リモートリポジトリのエイリアス
git push origin ”ブランチ名”
※サーバーの状況によりエラーになる可能性が有る→時間をおいて再度実行
トラッキングしているローカルブランチとリモートブランチ間でコミットの差分を確認
git status -vv
ログを簡潔に表示
git log --oneline
ブランチのトラッキング状態を確認する
git branch -vv
ブランチを現在のブランチにマージする(Fast-Forward)
git merge ”ブランチ名”
常にマージコミットを残す
git merge --no-ff
指定ブランチの先にコミットを新規に作り足す(マージコミットは残らない)
git rebase "ブランチ名"
ローカルブランチを削除
git branch -d ”ブランチ名”
リモートブランチを削除
git push --delete origin ”ブランチ名”
リモートリポジトリを別リポジトリへ変更
git remote set-url origin "別リポジトリのURL"
#複数アカウントの競合などで403エラー(アクセス権で弾かれる)場合
git config --global user.name "Your Name"
git config --global user.email you@example.com
git remote set-url origin https://<ユーザ名>@github.com/<ユーザ名>/<リポジトリ名>.git
//参考URL
https://hacknote.jp/archives/54105/
変更内容を退避 ※-uオプションで新規作成のファイルも退避
git stash -u
特定のファイルだけ退避
git stash push -- ./filepath
退避内容に名前をつける
git stash -m "my-stash" git stash push ./hoge -m 'hoge'
退避した変更内容のリスト
git stash list
退避した変更内容を適用
git stash apply stash@{num}
退避した変更内容を削除
git stash drop stash@{num}
最新のstashを適用してリストから削除
git stash pop
インデックス変更前の変更をリセットして元に戻す
git checkout HEAD .
git clone フォルダ名
pushされたリポジトリをダウンロードして確認できる
指定したブランチをクローンする
git clone -b ブランチ名 https://リポジトリのアドレス
コミットIDのみ表示
git log --pretty=oneline | awk '{print $1}'
--pretty=format:”%h”
HEADは常に一つ、現在の最新のコミットを指す
リポジトリ内の操作ログを調べる
git reflog
直前の状態に戻す
git reset --hard HEAD^
操作ログの状態に戻す
git reset --hard (hash) ※hashはgit reflogで調べる
コミットのみ直前の状態に戻す(作業状況は変わらない)
git reset --soft HEAD^
^(ハット)に引数を渡すとマージの親を選択できる
2番目のマージの親へ参照を移動
git checkout HEAD2
コミットを2つ前まで戻す(リモートリポジトリには反映されない)
git reset HEAD~2
2つ前の状態のコミットを新たに追加
git revert HEAD~2
HEADから特定のコミットまでのコミット数をカウント
git rev-list --count HEAD ^(コミットのハッシュ)
4つ前までのコミットをインタラクティブ(抽出、順番入れ替え)に操作
git rebase -i HEAD~4
任意のコミットを現在のブランチに追加
git cherry-pick ...(references)
直近のコミットを修正
git commit --amend
コミットにタグを登録
git tag tagname reference(省略可能)
直近のタグ、タグからのコミット数、最新コミットのハッシュを取得
git describe reference
rebaseでツリーを統合
git fetch --rebase
ブランチをリモートブランチへの追跡を設定して作成
git checkout -b hogebranch origin/main
origin(リモートブランチ)のに現在のチェックアウトのコミットをpush
git push origin
sourceの参照(Refspec)へdestinationを移動
git push origin
git bisect
git branch -u o/main foo
//参考URL
https://qiita.com/wann/items/688bc17460a457104d7d
https://www.r-staffing.co.jp/engineer/entry/20200605_1
コミットの情報確認
特定ファイルに関するコミットのみ表示
git log -- filePath
省略して表示
git log --pretty=oneline --abbrev-commit
コミットのメッセージのみ表示
git log --pretty=oneline --abbrev-commit | awk '{print $2}'
特定コミットの内容を表示
git show commitID --name-only
複数アカウントでの使い分け(公開鍵の使い分け)
~/.ssh/configに設定(※windows C:\Users\hp/.ssh/id_rsa)
Host github.sub #任意のホスト名HostName github.com IdentityFile ~/.ssh/id_sub_rsa #サブアカウントの鍵のファイルUser git Port 22 TCPKeepAlive yes IdentitiesOnly yes
上記の設定の公開鍵を使う場合、clone時には下記ホスト名を指定
git clone git@github.sub:username/hoge.git
pull/pushも種々個別に指定する必要がある(デフォルトはgithub.com)
下記でリモートリポジトリのURLを設定しなおす
git remote set-url git@github.sub:username/hoge.git
git push
git config --global/--localでユーザー情報を設定
user.name
user.email
//参考URL
https://zenn.dev/taichifukumoto/articles/how-to-use-multiple-github-accounts
プルリクエストをローカルリポジトリにマージする
git remote add upstream git@github.ak-mugichans:ak-mugichans/PRtest.git
git checkout PRのブランチ
git fetch upstream
git checkout master
git merge upstream/<プルリクエストのブランチ>
特定のコミットIDをclone
git init git add remote origin hoge git fetch --depth 1 origin hogeSHA
//参考URL
https://mebee.info/2021/05/09/post-33725/
コミットを整理
git rebase -i HEAD~n
pick 005667b log1を作成 pick cf4487a log_2を作成 pick 651562b log_3を作成 pick 0ab1b17 log_1を修正 pick 7153c7c log1,2を修正 pick 7160b49 log3のみを修正
edit:コミット直後へ移動
reward:コミットメッセージのみ修正
squash:コミットを統合
#コミット内容に追加する git add #コミット内容を分割する git reset @^ git add git commit
前回のコミットに追加
git commit --amend
//学習サイト
ffmpeg 音声ファイルに黒背景をつけて動画として書き出し
FILE_NAME="inputfile.m4a" && ffmpeg -f lavfi -i color=c=black:s=480x360:d=10 -i ${inputfile} -c:v libx264 -c:a aac -strict experimental -t "$(ffprobe -i ${inputfile} -show_entries format=duration -v quiet -of csv='p=0')" $(echo $inputfile | tr -d '.m4a').mp4
-show_entries stream=width,height:format=duration:表示するエントリを指定。この場合、幅(width)、高さ(height)、およびフォーマットの長さ(duration)を指定
-v quiet:バックグラウンドで処理
-of csv=p=0:出力形式をCSV形式に指定,p=0により出力のカラム(列)間に余分なスペースを含めない
BIMモデルを利用したLPを作ってみる② styled-components導入編
単純にstyled-componentsを'edgesout' とエラーが出たのでLTSバージョンをインストール
npm i -D styled-components@5.3.10
Typescript用の型定義もインポート
npm i -D @types/styled-components@5.1.26
BIMモデルを利用したLPを作ってみる① Next.js + Storybook + Cloudflare編
プロジェクト作成
next バージョン 13.4.2 storybook バージョン 7.0.11
npx create-next-app@latest --ts npm i sb@latest type nextjs npm sb init
Storybookのサンプル内のエラー修正
eslintで警告されたエスケープ処理を修正
"args" of child component stories
最近のNext.jsではデフォルトでサーバーサイドレンダリングの設定なので, クライアントレンダリングの設定を明記
"use client"
Cloudflareでデプロイする際の設定
Cloudflareに環境変数を追加
NODE_VERSION 18.7.0(12.22.0以上であれば良いとのことだが今回は開発環境に合わせた)
next.config.js修正
App Routerではnext exportは使えないのでoutput:'export'を指定
/** @type {import('next').NextConfig} */ const nextConfig = { output: 'export', } module.exports = nextConfig
yabai&skhd設定
# focus window alt - x : yabai -m window --focus recent alt - h : yabai -m window --focus west alt - j : yabai -m window --focus south alt - k : yabai -m window --focus north alt - l : yabai -m window --focus east # swap window shift + alt - x : yabai -m window --swap recent shift + alt - h : yabai -m window --swap west shift + alt - j : yabai -m window --swap south shift + alt - k : yabai -m window --swap north shift + alt - l : yabai -m window --swap east # move window shift + cmd - h : yabai -m window --warp west shift + cmd - j : yabai -m window --warp south shift + cmd - k : yabai -m window --warp north shift + cmd - l : yabai -m window --warp east # move window shift + ctrl - a : yabai -m window --move rel:-20:0 shift + ctrl - s : yabai -m window --move rel:0:20 shift + ctrl - w : yabai -m window --move rel:0:-20 shift + ctrl - d : yabai -m window --move rel:20:0 # increase window size shift + alt - a : yabai -m window --resize left:-20:0 shift + alt - s : yabai -m window --resize bottom:0:20 shift + alt - w : yabai -m window --resize top:0:-20 shift + alt - d : yabai -m window --resize right:20:0 # decrease window size shift + cmd - a : yabai -m window --resize left:20:0 shift + cmd - s : yabai -m window --resize bottom:0:-20 shift + cmd - w : yabai -m window --resize top:0:20 shift + cmd - d : yabai -m window --resize right:-20:0 # rotate tree alt - r : yabai -m space --rotate 90 # mirror tree y-axis alt - y : yabai -m space --mirror y-axis # mirror tree x-axis alt - x : yabai -m space --mirror x-axis # toggle desktop offset alt - a : yabai -m space --toggle padding && yabai -m space --toggle gap # toggle window fullscreen zoom alt - f : yabai -m window --toggle zoom-fullscreen # toggle window native fullscreen shift + alt - f : yabai -m window --toggle native-fullscreen # toggle window split type alt - e : yabai -m window --toggle split # float / unfloat window and restore position # alt - t : yabai -m window --toggle float && /tmp/yabai-restore/$(yabai -m query --windows --window | jq -re '.id').restore 2>/dev/null || true alt - t : yabai -m window --toggle float && yabai -m window --grid 4:4:1:1:2:2
javascript chromeでの並行ダウンロード制限(10まで)以上のダウンロード
const link = document.createElement('a'); document.body.appendChild(link); //Promiseを返却して処理を止める function pause() { return new Promise( (resolve, reject) => { setTimeout(resolve, 1000); } ); } const files = [ "file1", "file2", "file3", "file4", "file5", "file6", "file7", "file8", "file9", "file10", "file11", "file12", "file13", ] async function downloadAll(elements) { var count = 0; for (var file in files) { link.download = `${file}.txt`; link.href = URL.createObjectURL(link); link.click(); URL.revokeObjectURL(link.href) if (++count >= 10) { await pause(1000); count = 0; } }