検索条件
お知らせ
現在サイトのリニューアル作業中のため、表示が崩れているページが存在することがあります。
いくつか方法があるが、正直どれも使わないに越したことはない。しかし業務上の様々なしがらみなどでやむを得ず使うハメになることがある
リモートの変更まで無視してしまうと事故の元なので一番オススメ
git update-index --[no-]skip-worktreeを使う
.envのような個々人の環境によって異なるものがリポジトリ管理対象になっているときに使える
- ブランチの切り替え時のコンフリクト対策としてはスクリプトを組んでおくと楽
- ブランチで
--skip-worktreeとなっている対象の変更を隠す
# --skip-worktreeの一括解除
git ls-files -v | grep ^S | sed -r 's/^S.(.+)$/\1/g' | xargs git update-index --no-skip-worktree
# 出てきた変更を全てスタッシュに入れる
git stash push -q -m stash_skiptree
- 前項で隠した変更を再現して、
--skip-worktreeし直す
# stashから戻す
git stash pop -q
# この時点での差分に対し--skip-worktree
git diff --name-only HEAD | xargs git update-index --skip-worktree
リモート側で重大な変更があったときにローカルで検知できないので事故りやすい
git update-index --[no-]assume-unchangedを使う
使ったことないので存在だけ記述して終わり
--[no-]skip-worktreeも--[no-]assume-unchangedも使えないときにユースケースが存在するやつ
.git/info/excludeに無視対象のパスを記述することで無視できる
- 自分のローカルにだけこっそり存在する
docker-compose.override.yamlみたいなのを無視するときに使える
%HOMEPATH%.ssh\configに以下のように設定すると踏み台サーバーを経由したSSH接続が可能
- 設定は踏み台には証明書認証があるが、宛先にはないケースを想定
ssh target-host.devとすると踏み台経由でアクセス可能
ProxyCommandではssh.exeをフルパスで記述する必要がある
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host proxy.ssh-host.dev
HostName proxy.ssh-host.dev
User foo
IdentityFile C:\Users\user-name\.ssh\id_rsa
ForwardAgent yes
Host target-host.dev
Hostname target-host.dev
User bar
ProxyCommand C:\Windows\System32\OpenSSH\ssh.exe -l %r -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null proxy.ssh-host.dev -W %h:%p
余計な例外を投げてくるのが面倒なのでそれを無視できるように
| Env |
Ver |
| PHP |
7.1.3 |
| Xdebug |
2.9.4 |
| VSCode |
1.48.0 |
"ignore"セクションを追加してそこに書いたファイルから出た例外は無視される
{
"version": "0.2.0",
"configurations": [
{
"name": "Listen for Xdebug",
"type": "php",
"request": "launch",
"port": 9001,
"ignore": [
"**/vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php"
]
}
]
}
VSCodeのRemote - SSH拡張でSSH接続する時に毎回秘密鍵のパスフレーズを求められるのが面倒すぎるので、パスフレーズを記憶させて入力を省略させる方法を調べた
- Windows 10 or 11
- Remote - SSH拡張を利用した公開鍵認証接続(パスフレーズあり)ができている
- MSYS2を入れている
- PowerShellを管理者権限で起動させて次のコマンドを流す
Set-Service ssh-agent -StartupType Automatic
Start-Service ssh-agent
Get-Service ssh-agent
- 秘密鍵をssh-agentに食べさせる
ssh-add C:\Users\hoge\.ssh\id_rsa
- パスフレーズを求められるので入力
- 追加した秘密鍵が登録されていることを確認
ssh-add -l
- VSCodeからRemote - SSHを使って接続する
- パスフレーズ無しで入れればOK、パスフレーズを求められたら以下の手順2へ
以下の警告が流れてうまく行かないケース、この場合はWindows付属のOpenSSHが腐っているので入れ替える
warning: agent returned different signature type ssh-rsa (expected rsa-sha2-512)
- PowerShellを管理者権限で起動させて次のコマンドを流して標準のOpenSSHをアンインストールする
Get-Service -Name ssh-agent | Stop-Service
sc.exe delete ssh-agent
Remove-WindowsCapability -Online -Name "OpenSSH.Client~~~~0.0.1.0"
Remove-WindowsCapability -Online -Name "OpenSSH.Server~~~~0.0.1.0"
- Chocolateyを入れる
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
- OpenSSHをインストールする
choco install openssh --package-parameters="/SSHAgentFeature"
- サービスから
ssh-agentが実行中で自動起動するようになっていることを確認
- 秘密鍵をssh-agentに食べさせる
ssh-add C:\Users\hoge\.ssh\id_rsa
- 追加した秘密鍵が登録されていることを確認
ssh-add -l
- VSCodeからRemote - SSHを使って接続する
- パスフレーズ無しで入れればOK
SSHが使えない悲劇に出会った時に。CentOS 7.7で確認。
パスワードは平文保存されるっぽいので、そこら辺は注意が必要。
- 認証情報をキャッシュする設定にする
git config --global credential.helper cache
- キャッシュのタイムアウトを1年くらいにしとく
git config --global credential.helper 'cache --timeout=31536000'