SurfaceUbuntuレビュー・感想その他スマートフォンレンタルサーバーConoHaエックスサーバーKUSANAGIWebWordPressPHPフリーランスAVライフハック自作アプリ有限工房について管理人の秘密サイトマップ姉妹サイトお問い合わせIT・ガジェット系ブログです。作者の日々の学びを記録しております。市場ニーズ的な意味合いから、Webエンジニア界隈で大変人気のあるgitを勉強兼ねて実用することにした。一人で作る分にはバージョン管理ツールって必須レベルではないんだけど...。バージョン管理をするにあたって、保管場所であるリモートリポジトリ(gitではSVNで言うところの中央リポジトリのこと)を作る必要があるが、おおむね次の方法がメジャーであることがわかった。本家Gitをインストールリモートリポジトリを実際に作ってみるこれらを本記事にまとめた。現在ではコマンドラインでGitを操作することは無くなり、全てGUIのTortoiseGitでやるようになりました。エクスプローラー上のアイコンでひと目で新旧状態が分かるのが手放せません。TortoiseSVNを使っていた人(=自分)にはおすすめです。いえこうやって一度手を動かしとくと、原理が分かって良いですよ。GitBashだけ使ってても便利ですしね。結局のところ、自分のニーズとしてはバージョン管理機能だけあればいいサーバもクライアントもWindows機かつLANで使用するので、Windowsファイル共有で繋がれば十分あんまり余計なことは覚えたくないつまりシンプルなもので十分だったため、本家のコマンドラインツールさえあればいいことがわかった。本当はコマンドなんか打ちたくないが...。構築イメージ最終的にこんな構成で使いたい。いずれの機械もWindows10を使っている。ファイルサーバへのインストール手順まずはファイルサーバ(alicia)にGitをインストールする。Gitをダウンロードhttps://git-scm.com/を開き、「Downloads」をクリック「Windows」をクリック。インストーラ実行ファイルがダウンロードされるインストーラー実行STEPダウンロードされた実行ファイルを起動STEP『Next』押下STEP『Next』押下STEP『Next』押下STEP『Next』押下STEPここちょっと大事。git系のコマンドをMS-DOSプロンプト/PowerShellでも使えるようにするか否か。環境変数PATHを弄らない。安全だが、MS-DOSプロンプトでgit系のコマンドが使えない。環境変数PATHにgit系のコマンドを追加する。MS-DOSプロンプトでもbashでもgit系のコマンドが使えるようになる。自分はこれを選びました。環境変数PATHを弄る。findとsortをUnix系のものに置き換える。既存のバッチ処理などが動かなくなる可能性があるので、Unix党以外は選ばないほうがいいだろう。STEPここもちょっと大事。改行コードの変換に関する設定。Windows文化の「改行」は[CR][LF]だが、Unix/macOS文化では[LF]なので、OSが混在する環境では色々ハマるんですよね。チェックアウト時は[CR][LF]に変換。コミット時は[LF]に変換。チェックアウト時に変換しないが、コミット時は[LF]に変換。チェックアウト時、コミット時共に変換しない。自分はこれを選びました。下手に変換されると逆に混乱するので。Windows利用者としてはWindowsでCGIやシェルスクリプトを作ってLinix上で実行する場合に良くハマります。Bash」を選んだ時のコンソールをどちらにするか。MSYS2(Unix互換環境)のターミナルエミュレータを使う。今はどうか知らんが、昔触った時は漢字周りが話にならんレベルでボロボロだったんだよなぁ...。自分はこちらを選んだ。MS-DOSプロンプト用のウインドウを使う。漢字を含むファイルを扱う場合は鉄板じゃないでしょうか。間違った認識だったら教えて下さい。以上でインストール完了です。リモートリポジトリの作成ファイルサーバ(alicia)上にリモートリポジトリを作成する。こんなディレクトリ構成でやってゆく。└─web.ygkb.jp.gitgitというディレクトリの中にプロジェクトやアプリケーション別にリポジトリを増やしていくことにする。リポジトリ名の末尾に.gitと付けるのは慣例らしい。以後、F:\dev\git\efStat.gitを作成する前提で進める。リモートリポジトリにしたいフォルダを作る。Bash)を開くエクスプローラでF:\dev\git\efStat.gitを開く。Bashコンソールが開く。/f/dev/git/efStat.git$コマンド実行コマンドを入力。--shared=trueこうすることによりgitでの管理が開始される。この組み合わせはおまじないレベルみたい。意味initリポジトリを作成する。--bareベアレポジトリとする。管理ファイルのみを置く。=ワークファイルは置かない=コミットできない=SVNでいうところの中央リポジトリの扱いになる--shared=trueリポジトリを共有する。F:/dev/git/efStat.git/Windowsファイル共有でデータのやり取りをするだけなら、これだけで完成。任意:デーモンの立ち上げWindowsファイル共有ではなく、gitプロトコルを使ってやり取りする場合は、さらに待ち受け用デーモンを起動する。...うーん、SMBプロトコルが通らない出先から自宅につなぐとか、Windowsファイル共有が使えないOSからつなぐ、とかですかね。自分にとっては全く関係ないのでピンと来てませんが、一応立ち上げました。./git-daemon-export-okリモートリポジトリ用ディレクトリの直下にgit-daemon-export-okという名前の空ファイルを作ることで設定する。--base-path=/F/dev/gitこのとき、ファイアウォールのポートを開くか聞いてくるので許可する。以上でリモートリポジトリの作成作業は完了。さいごに以上でサーバ側の準備(リモートリポジトリ)ができた。近日中にクライアント側の準備手順を書きます。Bashで日本語の表示が化ける場合は👇を参考にしてください。10でのリポジトリ管理を止め、GitHubに移行しました(^^ゞWindowsだから悪いのではなく、GitHubのプライベートリポジトリが無制限になったことと、外出先でもソース管理できることが、自分にとっての決め手です。チームで秘匿性の高い物を作るときは、依然としてローカルでのリポジトリ管理が良いと思っています。ローカルで管理していたGitリポジトリをGitHubに移行したときの記録をまとめました。数コマンド打つだけで更新履歴も正しくコピーできました。Linuxでも通用します。当ブログではその中での学びをアウトプットしています。エックスサーバーもくじ(押すと各章に飛ぶ)もくじ一番上へ閉じるもくじ(押すと各章に飛ぶ)閉じる。