【Git】 Git ~ 基本編 / 共有リポジトリ ~

■ はじめに

リポジトリ について、メモ。

目次

【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】通信プロトコル

公式サイト
https://git-scm.com/book/ja/v1/Git-%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC-%E3%83%97%E3%83%AD%E3%83%88%E3%82%B3%E3%83%AB

より

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