altebute.hatenablog.com

犬も歩けば規格にあたる

Git 環境構築メモ on Windows

CUIGUIは分けて考える. 導入するツールは以下の通り.

ライセンスに気をつける. 特にGUIアプリケーション. GUIアプリケーションは好きなもの1つでよいだろう.


各アプリケーションの更新はRSSを購読して確認する.

GUIアプリケーションは更新通知機能がついてたり, ついていなかったりするかも知れない. 最近Sourcetreeが不自然な挙動見せるけど実利用で問題ないので見て見ぬふりをする.


基本的に公式に書いてある手順に従って導入する.

GitのインストーラはオプションでGit LFSも同時にインストールする事が出来るが, 必ずしも最新版とは限らないため使わない方が良い. git-lfs/README.mdに従ってインストールしよう.

git-flowはWindowsだとちょっと難しい感じがしないでもない.


シェルはGit Bashが基本だが, 余力があればfish shell等を導入しても良いかも知れない. ここらへんUnix, Linux環境向けの話ばかりで初心者はトラブルが起きた時自分で対応出来ない気がする.

シェルを思い通りにしようと思うと, コマンドプロンプト, Windows PowerShell, Git Bash, Cygwin, MSYS2等の各のシェルについてどのようにパスを通し, どのように環境変数が参照されるのかを把握する必要があるため, 学習コストが高い.

基本的に長いものにはまかれろの精神で, メジャーでカスタマイズする項目が少なくて済むツールを導入する. 多くの人が使用している環境の方が情報も豊富.


まずgit init --bare --sharedでベアリポジトリを作成. ディレクトリを作成する訳ではなく, カレントリディレクトリ自身をリポジトリに作成するので注意. ベアリポジトリの名前はxxx.gitとするのが通例.

次にgit clone <repository> [<directory>]でベアリポジトリをクローン, ノンベアリポジトリを作成する. クローン先のディレクトリが空でなかった場合, クローンに失敗する. 指定しなかった場合, リポジトリ名と同じ名前のディレクトリを作成し, そこにクローンする. 作成しようとしたディレクトリ名のディレクトリが既に存在した場合, クローンに失敗する.

Git LFSの設定はワークツリー内で行う. 例えばgit lfs track "*.png"等とすればpngファイルのコミット時にGit LFSが使用される. 設定は.gitattributesファイルに保存される. 恐らく, Gitの操作をする際にこのファイルを読み, それに従ってコミットを行う, という仕組みなのだろう. 当然Git LFSの設定は共有すべきなので.gitattributesファイルはコミットしておく.

最後にgit-flowの初期化処理を行う. git flow initで初期化したらそれで終わりである. 対話形式で初期設定を行うが, 基本的にデフォルトの設定で構わない. 尚, この行程はGUIアプリケーションでもたぶん問題ない.


その他, SSHの設定等が必要かもしれないが, サーバーをきちんと用意したりしないのであればたぶんデフォルトで問題ない.

尚, Git LFSは自身が管理するファイルについて, 複数のユーザによる同時アップロードが発生した際の競合を防ぐためのファイルロックの仕組みを備えるが, 殆どサーバは実装していないため, 以下のような警告が発生するかも知れない. その場合警告に従ってこの設定を無効化する必要があるかも知れない. 詳細はこちら

Remote "origin" does not support the LFS locking API. Consider disabling it with
:
  $ git config lfs.C:/Users/agate_pris/test.git/info/lfs.locksverify false

以上.