いろいろな理由でGitHubを使えない人に試してほしい3つの方法
バージョン管理ツール勉強会 バージョン管理(GitHub)でゲームジャム(ハッカソン)攻略!!
https://nagogebu.connpass.com/event/47735/
で話した内容に+αしたものになります。
GitHubを使えない理由は色々ありそうです。
- 無料で非公開で使いたいから
- インターネットにつながらないから
- 外に置けないデータだから
- 容量的にGitHubだとつらいから
そんな人におすすめな方法を紹介しようと思います。
オススメな方法3つを紹介
1. ローカル環境でGitリポジトリを作って使う
GitHubがなくてもGitを使うことができます。
メリット
- ネットワークは必要ない
- GitHubがなくても簡単に始められる
デメリット
- 共有はできない
こんな人にオススメ
- インターネットには繋がらない
- 1人でGitをつかいたい
- 特に共有とかいらない
方法
Gitのクライアントで、リポジトリを作成して使用します。
コマンド(Git Bashなど)での例
リポジトリを作って、READMEを作成する
$ # リポジトリを作成する
$ cd path/to/target_dir
$ git init
$ # README.mdを作成してコミット
$ echo "# README" > README.md
$ git add README.md
$ git commit -m "first commit"
2. HDD(外付けなどの外部装置)にリモートリポジトリを作る(サーバー未使用)
案外知らない人が多い方法です。
サーバーなしでできるため、気軽にできます。
1ではローカルリポジトリのため、共有が難しい状態になっていました。
外部装置にリモートリポジトリを作ることで限定的な共有ができるようになります。
また、限定的ですが共有できるのでゲームジャムなどでネット環境が不安定なときに使えます。
メリット
- 外付けHDDだけで限定的な共有が可能なリポジトリを作れる
- インターネットに繋がらなくてもリモートリポジトリを使える
- 容量は自分で用意した分だけ使える
- ローカルなので、非公開リポジトリになる
- sshなどの設定しだいでは、公開リポジトリにすることも可能
デメリット
- 媒体の持ち運びが必要
- リモートリポジトリの作成に、コマンド操作が必要
こんな人にオススメ
- ネットに繋がらない
- 非公開で使いたい
- ネットなしで少人数で使いたい
- 容量制限無しで使いたい
- 外に置けないデータを扱いたい
- 認証機能は特にいらない
方法
- リモートリポジトリを作りたいフォルダに、「--bare --shared=true」なリポジトリを作成する。
- クローン時に作成したリポジトリをリモートに設定する
コマンド(Git Bashなど)での例
リモートリポジトリを作成して、ローカルリポジトリからREADME.mdをプッシュする
$ # リモートリポジトリを作成
$ cd /path/to/remote_repo
$ git init --bare --shared=true
$ # ローカルにクローン
$ cd /path/to/local_repo_base_dir
$ git clone file:///path/to/remote_repo local_repo
$ # README.mdを作成してコミット
$ echo "# README" > README.md
$ git add README.md
$ git commit -m "first commit"
$ # リモートリポジトリにプッシュ
$ git push origin master
※例ではfileプロトコルを使用しましたが、sshプロトコルなどでも可能です
3. LAN内にGitHubライクなソフトフェアのサーバーを立てる
メリット
- LAN上なので、外に置けないファイルもおける
- LAN上にWEB上から管理できるGitサーバーを立てられる
- 容量は自分で用意した分だけ使える
- リポジトリの管理ができる
- 認証がつかえる
デメリット
- 自分でサーバーを立てる必要がある(ある程度の専門知識が必要)
- 家にサーバーを置くとなると電気代がかかる
- ソフトフェアのバージョンアップは手動で行う必要がある
こんな人にオススメ
- インターネットには繋がらないけど、ローカルネットワークはある
- 外に置けないデータを扱いたい
- 非公開で使いたい
- 容量制限無しで使いたい
- 認証がほしい
GitHubライクなソフトフェア紹介
-
GitLab
- オープンソース
- Ruby on Rails 製
- 公式サイト: https://about.gitlab.com/
- GitHub: https://github.com/gitlabhq/gitlabhq
-
GitBucket
- オープンソース
- Scala 製
- 公式サイト: https://github.com/gitbucket/gitbucket
- GitHub: https://github.com/gitbucket/gitbucket
Dockerを使ってサーバーを立てる
Dockerのインストール方法や詳しい使い方などは説明しません。
また各サーバーの設定方法や使い方などは、各自でお調べください。
GitLab
- 使うDockerイメージ: https://hub.docker.com/r/gitlab/gitlab-ce/
- ドキュメント: https://docs.gitlab.com/omnibus/docker/
$ cd path/to/gitlab_home
$ docker run -d -p 8080:8080 -p 29418:29418 -v ${PWD}/gitbucket-data:/gitbucket f99aq8ove/gitbucket
GitBucket
- 使うDockerイメージ: https://hub.docker.com/r/cloudaku/docker-gitbucket/
- GitHub: https://github.com/f99aq8ove/docker-gitbucket
$ cd path/to/gitbucket_home
$ docker run -d -p 8080:8080 -p 29418:29418 -v ${PWD}/gitbucket-data:/gitbucket f99aq8ove/gitbucket
まとめ
普段当たり前のようにつかっているものから、使わないものまでまとめてみました。
簡単な説明しかしていませんが、参考になれば良いかなと思います。