■ はじめに
リポジトリ について、メモ。
目次
【1】共有リポジトリ 【2】通信プロトコル 【3】サンプル
【1】共有リポジトリ
git init --bare
* 共有リポジトリ設定
git remote add [リポジトリ名] [リポジトリ場所]
* 共有リポジトリ追加 * ex. git remote add origin ~/our-web.git
git remote rm [リポジトリ名]
* 共有リポジトリ削除 * ex. git remote rm origin
git config -l
* 場所を確認
git push [リポジトリ名] [ブランチ名]
* 共有リポジトリに追加(プッシュ)する * ex. git push origin master
git pull [リポジトリ名] [ブランチ名]
* 共有リポジトリにあるファイル群をもってくる(プルする) * ex. git push origin master
git clone [共有リポジトリの場所] [ローカル]
* 共有リポジトリに自分のローカルをもってくる * ex. git clone ~/our-web.git my-web2
【2】通信プロトコル
より 1)Localプロトコル 2)SSHプロトコル 3)Gitプロトコル 4)HTTP/HTTPSプロトコル
1)Localプロトコル
* リモートリポジトリをディスク上の 別のディレクトリ/共有ファイルシステム上に置くもの
利点
* シンプルな構成 * 既存のファイルアクセス権やネットワークアクセスを流用できる
欠点
* メンバーが、ネットワーク外にいるときに 共有アクセスを設定するのは難しい * SSH より、遅くなりがち
2)SSHプロトコル
* SSH経由
利点
* SSH 環境の準備は容易 * セキュア (SSHなので) * 高パフォーマンス (Git プロトコルや Local プロトコルと同程度)
欠点
* リポジトリへの匿名アクセスを許可できない
3)Gitプロトコル
* Git に標準で付属する特別なデーモン * ポート : 9418
利点
* もっとも高速な転送プロトコル (暗号化と認証のオーバーヘッドがないため)
欠点
* 認証の仕組みがない * ファイアウォールでポート 9418 のアクセスを許可する必要
4)HTTP/HTTPSプロトコル
* すべてのデータは HTTP/HTTPS サーバー上の 静的なファイルとして扱われる
利点
* 簡単にセットアップできる (ファイアウォールも一般的なプロトコルであるため、 意識する必要もない可能性が高い)
欠点
* パフォーマンスが悪い (リポジトリのフェッチやクローンに非常に時間がかかち、 転送量が非常に増加)
【3】サンプル
登場人物
[x] 共有リポジトリ (~/our-web.git) [a] ユーザA [b] ユーザB
コマンド例
[x] 共有リポジトリ
# 共有リポジトリを設定 mkdir our-web.git cd our-web.git git init --bare
[a] ユーザA
git remote add origin ~/our-web.git git config -l user.name=admin user.email=admin@gmail.com color.ui=true core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true remote.origin.url=/home/admin/our-web.git remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* git push origin master
[b] ユーザB
git clone ~/our-web.git my-web-b cd my-web-b # 「ls」でソースが確認できる vi index.html # 修正する git add . git commit -m "from user-B" git push origin master
[a] ユーザA
git pull origin master git log
参考文献
動画
https://dotinstall.com/lessons/basic_git/6719
https://dotinstall.com/lessons/basic_git/6720
関連記事
Git ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2018/06/29/104028