git – ローカルリポジトリの作成・利用方法

以下のような理由で、GitHubを使えない/使うほどではないけど、ファイルのバージョン管理をしたいという時があると思います。

・業務のセキュリティ上、外部のサービスを利用できない。

・独自のgitサーバを立てるのは面倒。

・仕事の個人的なメモを管理したい。

・100MB以上のファイルを扱いたい。

・間違って公開したらまずいファイルを扱いたい。


そんな時は、ローカルリポジトリを作成するのが手軽でいいと思います。

ローカルリポジトリ作成手順

【前提】作業をするPCにgitがインストールされていること(当たり前ですが)

コマンドプロンプトで

md c:\aaa\bbbb\<リポジトリ名>.git   # リポジトリのフォルダを作成
cd c:\aaa\bbbb\<リポジトリ名>.git 
git init --bare --shared=true
git remote add origin "c:\aaa\bbbb\<リポジトリ名>.git"
git remote -v

ローカルリポジトリクローン(複製)手順

cd <クローンしたいディレクトリ>
git clone "c:\aaa\bbbb\<リポジトリ名>.git"

利用例(私の場合)

クラウドストレージのbox上にリポジトリを作成し、複数のPCに連携しています。

スマホは参照しかしません。スマホ参照用にDropBoxにリポジトリをcloneしています。

DropBox上のファイルはBoxcryptorというソフトで暗号化しています。

DropBoxへのpullはPCから行っています。

スマホ用のワークツリーはbox上でも良いのですが、切り替えが面倒(やれば簡単なのでしょうが)でそのままずるずると使っています。

gitリポジトリ
gitリポジトリ
ワークツリー
ワークツリー
pull
pull
pull/push
pull/push
pull/push
pull/push
参照
参照
ワークツリー
ワークツリー
ワークツリー
ワークツリー
Viewer does not support full SVG 1.1

vba – sjisのファイルをUTF-8に変換する

' 参照設定で「Microsoft ActiveX Data Object 6.1 Library」を追加すること
' ファイルの文字コード変換 : sjis→UTF-8
Sub SjisToUtf8(FilePath As String)
Dim txtBuf As String
Dim byteData() As Byte
Dim adoSt As New ADODB.Stream
    With adoSt
        'Shift_JISで読込
        .Type = adTypeText
        .Charset = "Shift_JIS"
        .Open
        .LoadFromFile FilePath
        txtBuf = .ReadText
        .Close
        'UTF-8で保存
        .Charset = "UTF-8"
        .Open
        .WriteText txtBuf, adWriteChar
        'BOM削除
        .Position = 0
        .Type = adTypeBinary
        .Position = 3
        byteData = .Read
        .Close
        .Open
        .Write byteData
        .SaveToFile FilePath, adSaveCreateOverWrite
        .Close
    End With
    Set adoSt = Nothing
End Sub

Excel – 画面上は文字切れしていないのに、印刷すると切れる場合の確認方法

エクセル(Excel)で、見た目は印刷範囲内に収まっているのに、印刷すると切れてしまう場合があります。

そんなときは、表示モードを「ページレイアウト」にして印刷イメージを確認します。

改ページプレビューだと切れていなくても・・・

ページレイアウトで表示すると、切れているのが分かります。

teraterm – sshログインマクロ

はじめに

いつもログインするサーバはマクロにしてしまったほうが楽です。

マクロのサンプルなど見ると、なんだか面倒に見えますが、単に以下のようなコマンドを作成しているだけです。

一番単純なteratermマクロ

connect <接続先IPアドレス>:22 /ssh /2 /auth=password /user=<ログインユーザ> /passwd=<パスワード>

公開鍵認証のログインマクロテンプレート


マクロと鍵ファイルが同じフォルダに入っている前提ですが、テンプレート内のコメントを参考に必要に応じてマクロを書き換えてください。

;==============================================
HOSTADDR = '<踏み台サーバのホスト名orIP>';
USERNAME = '<ユーザー>';
KEY_FILE = '<プライベートキーファイル>'
;==============================================

;; 鍵ファイルのフルパス生成
; MACRO の現在のディレクトリを得る。
; 鍵ファイルが別のフォルダにあるときは「MACRO_DIR='c:\abc\def'」のように書き換える。
getdir MACRO_DIR

KEY_FILE_PATH=''
strconcat KEY_FILE_PATH MACRO_DIR
strconcat KEY_FILE_PATH '\'
strconcat KEY_FILE_PATH KEY_FILE
; 必要であれば、鍵ファイルのパスをメセージで確認
; messagebox KEY_FILE_PATH "鍵ファイル"

;; 接続コマンド生成
COMMAND = HOST
strconcat COMMAND ':'
strconcat COMMAND PORT
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
; 鍵ファイルの前後を " で囲む(パスにスペースが入っている場合の対策)
strconcat COMMAND ' /keyfile="'
strconcat COMMAND KEY_FILE_PATH
strconcat COMMAND '"'
;; 接続
connect COMMAND

end

踏み台経由のログインマクロテンプレート


踏み台サーバが鍵認証の場合は、上記のマクロを参考に接続方法を変えてください。

;=====================================================================
; 踏み台接続情報
HOSTADDR = '<踏み台サーバのホスト名orIP>';
USERNAME = '<ユーザ>';
PASSWORD = '<パスワード>';

; 目的サーバ接続情報
HOSTADDR2 = '<踏み台から見た接続先>';
USERNAME2 = '<ユーザ>';
PASSWORD2 = '<パスワード>';
;=====================================================================

; コマンドオプション組立て
COMMAND = HOSTADDR
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD

; 接続
connect COMMAND

; プロンプトを待つ
wait "$"

; 目的サーバへ接続
COMMAND = 'ssh '
strconcat COMMAND USERNAME2
strconcat COMMAND '@'
strconcat COMMAND HOSTADDR2
sendln COMMAND

; 目的のサーバがパスワード認証無しであれば、以下のコマンドをコメントアウト
wait 'password:'
sendln PASSWORD2

end

vim – 保存して終了を1文字で

:x

vim(vi)で保存して終了は :wq が一般的ですが、私は :x を使っています。
wq は左手の薬指と小指でキーの上部を押すことになり微妙に使いにくい。
今までこのコマンドを使っている人を見たことがないので、あまり一般的では無いのかと思い記事にしました。