🐱

GitHubを使わずにgitを使う

2020/09/21に公開

はじめに

gitは元々Linuxのコマンドとして提供されていたもので、後にサービスが行われるようになったGitHubやGitLab、BitBucketなどのWebサービスは特に必須では有りません。
ここでは、日本の会社でありがちな外部のWebサービスを使えない環境でgitを使用する方法をあげてみます。

共有リポジトリについて

個人利用の場合は必須では無いですが、同じプロジェクトのチームメンバーで共同開発する場合は共有リポジトリを用意する必要が有ります。
この共有リポジトリがマスターのソースコードを管理するデータベースとなり、チームメンバーはこれをローカルに複製(clone)して開発を進めることになります。
GitHub, GitLab, BitBucketなどは、この共有リポジトリを預かって運用するWebサービスです。

オンプレミス版を使用する

それぞれ、社内サーバーで運用可能なオンプレミス版が提供されています。
社内でWebサーバーを用意して運用可能であるならこれがお勧めです。

GitHub Enterprise
GitLab
BitBucket

ファイルサーバーで使用する

例えば、2人で開発を行う際のソースコードの受け渡しを簡単に行いたいとか、自分1人の開発だけどソースコードはサーバーに置いておきたい場合等にお手軽で便利です

共有リポジトリを作成する

ファイルサーバー上のフォルダに共有リポジトリを作成します。
以下、Git for Windows によるコマンドラインでの例です。

$ cd //fileserver/repo
$ git init --bare myproject.git

ファイルサーバー名://fileserver
リポジトリを格納するフォルダ:repo
作成するリポジトリ名:myproject.git

ローカルに複製(clone)する

cloneコマンドに共有リポジトリのパスを指定します。
各チームメンバーのローカルで以下コマンドを実行します。

$ git clone //fileserver/repo/myproject.git

これでローカルに myproject というフォルダが作成されます。
これがローカルリポジトリとしてユーザがファイル編集を行っていく環境となります。

プルリクエスト

GitHubで有名な機能ですが、本来のgitには有りません。共有リポジトリを預かるだけでなく様々なサービスを追加で提供している訳です。
なので、ファイルサーバー運用では例えば、

  1. 開発担当者が開発ブランチにコミットして共有リポジトリにpush
  2. 共有リポジトリ管理者がローカルに取得してソースを確認
  3. 編集内容がOKならマスターとなるブランチにマージしてpush

といった作業を行います。

Discussion