カテゴリー
SugiBlog Webデザイナー・プログラマーのためのお役立ちTips

gitコマンドで差分抽出とアーカイブ出力

gitを使ってソース管理し開発をしていて、差分ファイルをリリースするときのTipsです。

差分を抽出する

git diff [古いブランチ名]..[新しいブランチ名]
git diff [古いブランチ名] [新しいブランチ名]

ファイル名だけを列挙したいとき

git diff --name-only [古いブランチ名] [新しいブランチ名]

ファイル名のリストをテキストファイルにリダイレクトで書き出す

git diff --name-only [古いブランチ名]..[新しいブランチ名] >> diff.txt

ブランチをアーカイブ出力

git archive [ブランチ名] -o archive.zip

出力するディレクトリを指定

git archive --prefix=archive/ [ブランチ名] -o archive.zip

差分抽出とアーカイブ出力を組み合わせて、抽出した差分ファイルをアーカイブ出力

git archive --prefix=archive/ [新しいブランチ名] (git diff --name-only [古いブランチ名] [新しいブランチ名] --diff-filter=ACMR) -o diff.zip
フィルターの種類
A 追加
C コピー
M 変更
R リネーム
D 削除

小文字にすると逆になるので、以下のようにしても同じことになります。

git archive --prefix=archive/ [新しいブランチ名] (git diff --name-only [古いブランチ名] [新しいブランチ名] --diff-filter=d) -o diff.zip
743 views

CSVにダブルクォーテーションを簡単に付けるには

CSVファイルで各カラムがダブルクォーテーションで括られていないことがたまにあります。
そんな時、皆さんどうしていますか?
私はテキストエディタでカンマ「,」を「”,”」に置換し、行の先頭と末尾にダブルクォーテーションを付ける・・・ということをいちいちやっていました。
しかし、PowerShellのコマンドを使えば、一発で簡単にダブルクォーテーションを付けることが出来るようなのです。

コマンド例はこちら

Import-Csv -Path "C:\source.csv" -Encoding Default | Export-csv -Path "C:\destination.csv" -Encoding Default -NoTypeInformation

インポートしたCSVの内容をパイプでエクスポート側に渡す、という動作になります。

オプションについて
Encoding 既定値(Default)はutf8NoBOM
ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode,
UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
NoTypeInformation TYPE情報ヘッダーをエクスポートしない

変換元のCSV

ColumnA,ColumnB,ColumnC
1,Ipsum,Sed
2,Magna,Est
3,Clita,Stet

変換後はこのようになります。

"ColumnA","ColumnB","ColumnC"
"1","Ipsum","Sed"
"2","Magna","Est"
"3","Clita","Stet"

但し、数値のカラムに対してもダブルクォーテーションが付けられるので、そこは我慢するしかないようです。

969 views

Invoke-webRequestとcurlコマンドでHTTPリクエスト

Invoke-webRequestとcurlコマンドを使えばCUI(Commandline User Interface)にてHTTPリクエストを送信することができます。
ここでは基本的な使い方をご紹介します。

Windowsの場合

まずはWindowsの場合です。
PowerShellでInvoke-webRequestコマンドを使います。

このコマンドにはエイリアスが設定されており、curl iwr wgetでも使えます。
curlはあくまでエイリアスなので、Linux・Macでのcurlとは異なりますのでご注意ください。

GETリクエスト
Invoke-webRequest https://www.hoge.jp
Invoke-webRequest -Method GET https://www.hoge.jp

パラメータを付加したリクエスト

Invoke-webRequest https://www.hoge.jp?key=value&key=value
Invoke-webRequest -Method "GET" -Body @{key="value";key="value"} https://www.hoge.jp
POSTリクエスト
Invoke-webRequest -Method "POST" -Body 'key=value&key=value' https://www.hoge.jp
Invoke-webRequest -Method "POST" -Body @{key="value";key="value"} https://www.hoge.jp

続きを読む…»

4,367 views

Docker + Laravel9 開発環境構築

Dockerを使ってLaravel9の開発環境を構築してみたいと思います。
XAMPPやレンタルサーバーを使うよりお手軽に出来るので是非試してみてください。

OS等の環境は以下の通りです。

OS: Windows10
Docker Desktop: v4.14.1
Visual Studio Code: v1.74.0

Dockerで環境構築

予め必要なファイル等を準備します。
Laravelのプロジェクト名は「laravel-app」と仮定します。

docker/app/000-default.conf
<VirtualHost *:80>
       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/html/laravel-app/public
       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
       <Directory /var/www/html/laravel-app/public>
           AllowOverride All
       </Directory>
</VirtualHost>
docker/app/Dockerfile
# dockerイメージの選択
# 予めPHPとApacheがインストールされているイメージをDocker Hubからダウンロード
FROM php:8.0-apache

# 設定ファイルをdockerコンテナ内のPHP、Apacheに読み込ませる
# ADD:ローカルのファイルをDockerコンテナ内にコピーする
ADD php.ini /usr/local/etc/php/
ADD 000-default.conf /etc/apache2/sites-enabled/

# Composerのインストール
# RUN:コンテナ内でコマンド実行する
RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer

# Node.jsをインストール
RUN curl -sL https://deb.nodesource.com/setup_16.x | bash -
RUN apt-get install -y nodejs

# ミドルウェアのインストール
RUN apt-get update \
&& apt-get install -y \
git \
zip \
unzip \
vim \
libpng-dev \
libpq-dev \
&& docker-php-ext-install pdo_mysql

# Laravelで必要になるmodRewriteを有効化する
RUN mv /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
RUN /bin/sh -c a2enmod rewrite

続きを読む…»

2,999 views

Docker環境構築初期の落とし穴 localhost/tutorial

Dockerで作成した環境で開発を始めようとしたときに少しハマってしまったので原因と解決法を書いておきたいと思います。
環境は次の通りです。

Windows10 Home
Docker Desktop v4.14.1

大抵の場合、Dockerをインストールして最初にやってみるコマンドは以下だと思います。

docker run -d -p 80:80 docker/getting-started

このコマンドを実行してコンテナが作成され、http://localhostにアクセスするとGetting Started画面が表示されます。
ここがポイントなのですが、http://localhostにアクセスするとhttp://localhost/tutorialにリダイレクトされます。
このリダイレクトが曲者で、キャッシュに残ってしまうのです。

Dockerの導入が終わったので、いざ開発を始めた際に、一通り環境構築が終わった後、http://localhostにアクセスして出来ているか確認しますが、キャッシュが残っていることが原因でhttp://localhost/tutorialにリダイレクトされてしまいます。
表示したいのはhttp://localhostなのに・・・。

Windowsのhostsファイルが原因なのかと思いましたがどうも違うよう。
結局、原因はブラウザのキャッシュでした。

キャッシュをクリアするとリダイレクトされなくなりました。

890 views