Git で過去のコミットのコメントを修正する方法

Git を使用してバージョン管理を行っていますが、過去に行ったコミットを見ているとコメント内容が間違っていることが時々あります。
本来ならば間違いの無いように入力してコミットするべきですが・・・
 
今まではそのまま放置していましたが、後で見直して勘違いしてしまうコメントがあるので修正することにしました。
 
 
 
まずは修正したいコミットを確認する。

コマンドを実行すると、「commit 34e38b3・・・・・」と表示されるので、変更したいコメントの “commit” の後に表示されている番号を確認する。
 
 
 
git rebase の [ -i ] オプションを使用して、先ほど確認した修正したいコミット番号を [ -i ] オプションの後に入力する。

入力したコミット番号よりも新しいコミットの一覧が表示される。
表示された一覧から、変更したいコミットの [ pick ] を [ edit ] に変更して保存する。
 
 
 
git commit の [ –amend ] オプションを指定してコミットコメントを修正する。
コメントの修正方法は、以下の様にして変更する。

直接コメントを入力する場合

テキストエディタを起動して入力する場合

このコマンドを実行すると、テキストエディタが起動するので、コメントを修正して保存する。
 
 
 
git rebase の [ –continue ] オプションを使用して最新のコミットに戻す。

 
 
 
既にコミット内容をリモートリポジトリにプッシュしている場合は以下の様にプッシュする。( master ブランチの場合)

 
 
 
この作業を行うことで、コミットのコメントを修正できます。
 
 

gccでコンパイルしたときの文字化け対策(2)

gccで表示する文字の文字化け対策です。
gccでコンパイルする人以外は参考にならないと思います。
 
 
文字コードsjisのソースファイルに含まれる、「ソ」・「表」などが文字化けしてしまう症状が出ました。
“表示ソフト”と表示するソースファイルを、gccでコンパイルすると「warning: unknown escape sequence:」と警告が出ますが、コンパイルは成功しています。
生成した実行ファイルを実行すると、文字化けしてしまい読み取ることができません。
 
文字化けする原因としてはgcc特有のもので、ソースコードに含まれる一部の2バイト文字に対応していないとのことです。
今回の場合ですと、sjisの「ソ」は16進数で「83 5c」で表されるので、「5c」の部分をエスケープシーケンスの「\」として解釈されてしまうたため、未知のエスケープシーケンスが含まれますと警告が出るようです。
同じように、「表」「貼」「能」「予」「禄」等もsjisの文字コードに「5c」が含まれるので文字化けします。
 
 
文字コードsjisを使用する場合、2バイト目にエスケープシーケンスと同じ値が含まれる場合は、入力した文字の後ろに「\」を入れることで正常に表示することができます。
 

“表示ソフト”と表示したい場合は、”表\示ソ\フト”と入力する。
 
「\」を入れることで、コンパイル時に警告が出なくなり、文字化けせずに表示できるようになります。
 
 
この問題は、gccでコンパイルする上では避けようがないもののようです。
 
 

gccでコンパイルしたときの文字化け対策

C言語で記述したソースファイルをgccでコンパイルした実行ファイルを実行すると日本語が文字化けしてしまい表示が読めなくなってしまう。
 
文字化けが発生する原因としては、使用しているターミナル(terminal)の文字コードとソースファイルの文字コードが一致していない場合発生することが多いそうです。
 
文字化けしない対策として、ソースファイルの文字コードを「sjis」にしたところgccでコンパイルした実行ファイルで文字化けが直りました。
 
 
今まで文字コードをあまり気にしませんでしたが、gccを使用する上では気をつけないとならないみたいです。
VC++はテキストエディタが統合されているので気にしなくても問題がなかったのかも・・・
 
 

.batファイルを実行するとnullのファイルが作成されてしまう

バッチファイルにnullコマンドを記載して実行すると、実行したフォルダ内にnullファイルが作成されてしまいました。
原因を調べてみると、Windowsのバッチファイルには「null」ではなく「nul」と入力しないとならないみたいです。
 
こんな単純なことですが、結構な時間はまってしまいました・・・
 
 

現在開いているファイルの文字コードを確認する

vimで作成するファイルは基本的にutf-8で自動保存されるが、他のソフトで編集したファイルや頂いたデータなどに追記するときなどに現在の文字コードを確認したい時がある。
vimで現在開いているファイルの文字コードは以下のコマンドで確認できます。
 

 
 
確認して何かしたいわけではないですが、ファイルを送った先で読めないなど言われたときに確認できると助かります。
 
 

グループポリシーの管理用テンプレート警告

Windows10のグループポリシーを設定するため、既存のサーバー(Windows Server 2008 R2)を「Administrative Templates (.admx) for Windows 10 and Windows Server 2016」の.admxに更新したら、グループポリシーの設定を変更するときに警告が表示されるようになってしまった。
 
 
以下、表示された警告です。


管理用テンプレート
解析中にエラーが発生しました。
名前空間 ‘Microsoft.Policies.WindowsStore’ は、既にストア内の別のファイルのターゲット名前空間として定義されています。
ファイル
¥¥[domain.local]¥SysVol¥[domain.local]¥Policies¥PolicyDefinitions¥winstoreui.admx、行 4、列 80


※[domain.local]は、各環境の名前に置き換えて下さい。
 
 
本エラーは、警告メッセージをOKして閉じれば無視できるが、ポリシーの管理画面の設定で警告が表示されて内容が表示されないため解決しておきたい。
 
 
 
対策

  1. PolicyDefinitions内の「winstoreui.admx」を削除する。
  2. PolicyDefinitions内の「WindowsStore.admx」を「winstoreui.admx」にリネームする。
  3. PolicyDefinitions¥ja-jp内の「winstoreui.adml」を削除する。
  4. PolicyDefinitions¥ja-jp内の「windowsstore.adml」を「winstoreui.adml」にリネームする。
    ※ファイルは削除せず別ディレクトリに移動させておき、問題ないことが確認されてから削除した方が安全です。

 
 
対策実施後に、グループポリシーの設定を変更すると警告が発生しません。
今回はこの方法で解決できました。
 
 

リモートリポジトリからクローンする

ネットワーク上にあるリモートリポジトリからリポジトリをローカルにクローンして作業で使用することができます。

リモートリポジトリからカレントディレクトリにクローンする方法です。
作成されるディレクトリ名は、デフォルトの名前になります。

同じ名前のリポジトリがあるとエラーが発生します。
 
 
リモートリポジトリからカレントディレクトリにクローンするディレクトリ名を指定してクローンする方法です。
この方法でクローンするとクローンするディレクトリの名前を指定でます。

 
 

ファイルタイプの設定と確認

vimで開くテキストファイルのファイルタイプ(filetype)を設定し確認する方法。

ファイル形式を自動で検出できない場合や、違うタイプに変更したい場合には手動で設定する。
ファイルタイプの設定方法

 
 
 
設定したファイルタイプの確認方法

 

MySQLで出力されるログファイル内の時間が違う

MySQLから出力されるLOGファイルの内容を見ていたら、表示されている時間が明らかにおかしい表示になっていました。
コマンド画面で確認したら、表示される時間がずれています。
 
調べてみると「log_timestamps」を「my.cnf」設定することで対処できるらしいので、設定しておきます。
(Windwos環境の場合は、ファイル名が「my.ini」になっている)