SlideShare a Scribd company logo
Git Lev.4 -みんなで Git-
倉重健太郎
2015 年 2 月 8 日
1 前提
本資料は,万人向けの資料ではなく,以下の使用状況下を想定した資料である.
• Git サーバとして GitLab を用いる.特に,以下のどちらか (もしくは両方) を想定している.
– 研究室に自前の GitLab サーバを構築している.
– GitLab.com にアカウントを持っている.
2 概要
GitLab を介した多人数での開発や情報共有について述べる.まず GitLab におけるプロジェクトのアクセ
ス種別について述べ,次にプロジェクトにおけるメンバー種別,グループの使い方について述べる.
2.1 プロジェクトのアクセス種別
プロジェクトのアクセス種別は以下のようになる.
Private このプロジェクトに明示的に登録されたユーザしかアクセスできない
Internal GitLab に登録されたユーザなら clone できる
Public プロジェクトの url(特に https) を知っているものなら誰でも clone できる
2.2 プロジェクトにおけるメンバー種別
プロジェクトが Internal 以上であればメンバー登録されなくても clone はできる.しかしそれ以上のこと
をしようとしたり,Private のプロジェクトなら clone するためにもメンバー登録されないければいけない.
登録されるメンバーの種別は以下のようなものがある.
• Guest
• Reporter
• Developer
• Master
1
• Owner
詳しくは GitLab の help の User documentation-Public access を参照のこと.特に使用するものについて
簡単に説明する.
Reporter Private プロジェクトに対して clone が出来る
Developer branch を切ったり push 出来る
Owner プロジェクト作成者と同等の権限がある
2.3 グループについて
作成したプロジェクトに登録する人間が基本的に決まっていて,しかも人数が多いとメンバー登録が面倒で
ある.そのような場合,グループを使うと手間が減る.複数人数のメンバーをグループに登録しておくと,プ
ロジェクト作成時に Namespace としてグループを選べてプロジェクトのメンバーとして初期登録できる.も
しくはグループからプロジェクト作成が選べる.
2.4 多人数開発の方法
プロジェクトのアクセス種別およびメンバーのアクセス種別によって方法は異なる.大きく分けると以下の
ようになる.
Fork-Merge request
GitLab の該当プロジェクトのページから Fork を選び,自分のところにプロジェクトのコピーを作成す
る.以後,自分のプロジェクトとして編集を行い,適度なところで元のプロジェクトに Merge request
を送る.元のプロジェクト管理者用は Merge request を受け取ったら差分を確認しながら merge して
いいか考える.
該当プロジェクトにアクセスできるならこの方法となる.
直接編集
GitLab の該当プロジェクトを直接編集する.branch も作成できるし push も出来る.
該当プロジェクトの Developer 以上であれば可能である.
3 基本操作
3.1 Fork の方法
GitLab の該当プロジェクトの左ペインに Project があり,そのページ内右上に Fork という文字がある.
それをクリックすると Fork できる.
3.2 直接編集
git clone して編集,普通に push する.
2
3.2.1 安全な直接編集
自分の名前等でブランチを作成して,その中で編集する.本筋のブランチとの merge は自分で行わず,ブ
ランチ管理者 (作成者) に連絡する.ブランチの作成の仕方は,普通に git branch でも良いが,GitLab の該
当プロジェクトの左ペインに Commits があり,そのページ内に Branches がある.そこに New branch があ
り,そこでも作成できる.
3.2.2 push 時のコンフリクト
多人数開発では,特にコンフリクトが懸念される.自分のワークツリーとリポジトリはコンフリクトが起き
ておらず同一のものとしても (そのコンフリクトは Git Lev.3 で解消すること),自分のリポジトリとサーバの
リポジトリのコンフリクトが生じる可能性がある.このコンフリクトが起きた場合,以下のコマンドによって
解消を試みる.
• pull
• fetch して merge/rebase
pull = fetch して merge/rebase だが,変なことになった時のわけわからんさは pull > fetch して
merge/rebase である.本当は fetch して merge/rebase の手順に慣れた方がよい.
git pull
.git/config で指定されているサーバのリポジトリをダウンロードし merge する.
4 基本運用
運用は,それぞれの使用環境で変わる.ここでは,倉重研究室の運用を基本として述べる.
4.1 プロジェクトのアクセス種別
GitLab.com を使用する場合,プロジェクトのアクセス種別は Private が基本である.研究室内 GitLab を
使用する場合,プロジェクトのアクセス種別は Internal が基本である.
4.2 Fork と直接編集どちらを使うか
Fork および直接編集 (直接編集ではブランチ名に自分の名前を入れるかどうか),は運用による.Git-
Lab.com を使用する場合は Fork が基本,研究室内 GitLab を使用する場合は直接編集が基本となる.方針は
以下の通り.
Fork 他のプロジェクトをベースに自分用のものを作成したい or 作成者と使用者に分かれている or 顔を合
わせられる距離におらず直ぐにディスカッション等できない
直接編集 (リーダーなし) 一つのものを多人数で開発 or メンバー全員が信頼でき且つ顔を合わせられる距離
にいる
3
直接編集 (リーダーあり) Fork と直接編集 (リーダーなし) の中間で,一人の人に master の管理を任せた方
がよさそうな場合である.プロジェクト作成者が希望する場合など.
直接編集 (リーダーなし) と直接編集 (リーダーあり) のどちらにおいても,ブランチに内容と自分の名前を
入れて以下のようにする.二つの違いは,master に各ブランチを merge してタグ付けするのが全員なのか
(リーダーなし),一人なのか (リーダーあり) である.
例 
master
developer-e greedy-kurashige
hotfixes-issue1234-clione
 
ここで GitLab には issue という機能があり,これからやりたいことや現在分かっている問題などを共有す
ることができる.追加や確認などは web ブラウザ経由で可能であり,自動的に#番号が割り当てられる.こ
の番号を使って issue1234(issue #1234) とするのが最も理想的である.ちなみに,commit 時のメッセージ
に”fixing #1234”(複数の場合は fixing #1234, #1235 and #1236 のようにカンマや and で区切る) と入れ
ると自動的に当該 issue を close(終わったことに) してくれる.
4

More Related Content

What's hot

Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
Kenji Takei
 
GitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理するGitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理する
jiro4989
 
Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
Yuto Suzuki
 
医療データ解析者へ向けた Git・GitHub 入門
医療データ解析者へ向けた Git・GitHub 入門医療データ解析者へ向けた Git・GitHub 入門
医療データ解析者へ向けた Git・GitHub 入門
Yui Tomo
 
8つの操作ではじめるGit
8つの操作ではじめるGit8つの操作ではじめるGit
8つの操作ではじめるGit
DelfinoAzul
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会kunimiya
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
hibiki443
 
Githubを使いこなす(・ω・)
Githubを使いこなす(・ω・)Githubを使いこなす(・ω・)
Githubを使いこなす(・ω・)
Kazuki Takahashi
 
Git flow
Git flowGit flow
Git flow
Takami Aoyama
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
Keisuke Oohata
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Koji Shinba
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座Yusei Yamanaka
 
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github
Tomohiko Himura
 
GitLabをバックアップしてみた
GitLabをバックアップしてみたGitLabをバックアップしてみた
GitLabをバックアップしてみた
VirtualTech Japan Inc./Begi.net Inc.
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回
kinme modoki
 
色んな環境用の たった一つの.gitConfig
色んな環境用の たった一つの.gitConfig色んな環境用の たった一つの.gitConfig
色んな環境用の たった一つの.gitConfig
wataru uchiyama
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
Taisuke Inoue
 
GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)
Wataru NOGUCHI
 

What's hot (20)

Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
 
GitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理するGitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理する
 
Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
 
医療データ解析者へ向けた Git・GitHub 入門
医療データ解析者へ向けた Git・GitHub 入門医療データ解析者へ向けた Git・GitHub 入門
医療データ解析者へ向けた Git・GitHub 入門
 
8つの操作ではじめるGit
8つの操作ではじめるGit8つの操作ではじめるGit
8つの操作ではじめるGit
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
 
Githubを使いこなす(・ω・)
Githubを使いこなす(・ω・)Githubを使いこなす(・ω・)
Githubを使いこなす(・ω・)
 
Git flow
Git flowGit flow
Git flow
 
Git 20100313
Git 20100313Git 20100313
Git 20100313
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
 
日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github日本androidの会 中国支部 29回勉強会 github
日本androidの会 中国支部 29回勉強会 github
 
GitLabをバックアップしてみた
GitLabをバックアップしてみたGitLabをバックアップしてみた
GitLabをバックアップしてみた
 
Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回Git勉強会 2016 Gitで卒論を管理しよう回
Git勉強会 2016 Gitで卒論を管理しよう回
 
色んな環境用の たった一つの.gitConfig
色んな環境用の たった一つの.gitConfig色んな環境用の たった一つの.gitConfig
色んな環境用の たった一つの.gitConfig
 
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
GitLab Meetup Tokyo #1 LT:「わりと大きい会社でGitLabをホスティングしてみた話」
 
GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)
 

Similar to Git lev 4 -みんなでGit-

GitHub勉強会~当日資料~
GitHub勉強会~当日資料~GitHub勉強会~当日資料~
GitHub勉強会~当日資料~
Shintaro Mizuno
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門Takashi Imagire
 
Git_GiHub講習会.pdf
Git_GiHub講習会.pdfGit_GiHub講習会.pdf
Git_GiHub講習会.pdf
Takara Ishimoto
 
今さら聞けない人のためのGit超入門
今さら聞けない人のためのGit超入門今さら聞けない人のためのGit超入門
今さら聞けない人のためのGit超入門
VirtualTech Japan Inc./Begi.net Inc.
 
GitHub Handson
GitHub HandsonGitHub Handson
GitHub Handson
Yoichiro Shimizu
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
VirtualTech Japan Inc./Begi.net Inc.
 
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
日本マイクロソフト株式会社
 
Githubサービスについて
GithubサービスについてGithubサービスについて
Githubサービスについて
Akura Pi
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
VirtualTech Japan Inc./Begi.net Inc.
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
Shun Tsunoda
 
Agileツール適合化分科会(変更管理・バージョン管理)
Agileツール適合化分科会(変更管理・バージョン管理)Agileツール適合化分科会(変更管理・バージョン管理)
Agileツール適合化分科会(変更管理・バージョン管理)
masanori kataoka
 
超初心者向け!Visual Studio + GitHub + Source Treeで始めるアプリケーション開発
超初心者向け!Visual Studio + GitHub + Source Treeで始めるアプリケーション開発超初心者向け!Visual Studio + GitHub + Source Treeで始めるアプリケーション開発
超初心者向け!Visual Studio + GitHub + Source Treeで始めるアプリケーション開発
満徳 関
 
About git
About gitAbout git
About git
asakohasegawa
 
GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回
NaohiroHamada
 
超初心者のためのGitマニュアル
超初心者のためのGitマニュアル超初心者のためのGitマニュアル
超初心者のためのGitマニュアル
MasakiKato14
 
GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書
相皓 卞
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
VirtualTech Japan Inc./Begi.net Inc.
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章
Akira Torii
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
Takafumi Yoshida
 

Similar to Git lev 4 -みんなでGit- (20)

GitHub勉強会~当日資料~
GitHub勉強会~当日資料~GitHub勉強会~当日資料~
GitHub勉強会~当日資料~
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門
 
Git_GiHub講習会.pdf
Git_GiHub講習会.pdfGit_GiHub講習会.pdf
Git_GiHub講習会.pdf
 
今さら聞けない人のためのGit超入門
今さら聞けない人のためのGit超入門今さら聞けない人のためのGit超入門
今さら聞けない人のためのGit超入門
 
GitHub Handson
GitHub HandsonGitHub Handson
GitHub Handson
 
今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編今さら聞けない人のためのGitLabの始め方 Ubuntu編
今さら聞けない人のためのGitLabの始め方 Ubuntu編
 
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
【de:code 2020】 GitHub 新機能のご紹介(2020 年 5 月発表)
 
Git @ NNCT programming workshop
Git @ NNCT programming workshopGit @ NNCT programming workshop
Git @ NNCT programming workshop
 
Githubサービスについて
GithubサービスについてGithubサービスについて
Githubサービスについて
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
 
Agileツール適合化分科会(変更管理・バージョン管理)
Agileツール適合化分科会(変更管理・バージョン管理)Agileツール適合化分科会(変更管理・バージョン管理)
Agileツール適合化分科会(変更管理・バージョン管理)
 
超初心者向け!Visual Studio + GitHub + Source Treeで始めるアプリケーション開発
超初心者向け!Visual Studio + GitHub + Source Treeで始めるアプリケーション開発超初心者向け!Visual Studio + GitHub + Source Treeで始めるアプリケーション開発
超初心者向け!Visual Studio + GitHub + Source Treeで始めるアプリケーション開発
 
About git
About gitAbout git
About git
 
GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回GitLab/GitLab.com勉強会 第2回
GitLab/GitLab.com勉強会 第2回
 
超初心者のためのGitマニュアル
超初心者のためのGitマニュアル超初心者のためのGitマニュアル
超初心者のためのGitマニュアル
 
GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書GitHubの入門を読む前に読む入門書
GitHubの入門を読む前に読む入門書
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 

Git lev 4 -みんなでGit-

  • 1. Git Lev.4 -みんなで Git- 倉重健太郎 2015 年 2 月 8 日 1 前提 本資料は,万人向けの資料ではなく,以下の使用状況下を想定した資料である. • Git サーバとして GitLab を用いる.特に,以下のどちらか (もしくは両方) を想定している. – 研究室に自前の GitLab サーバを構築している. – GitLab.com にアカウントを持っている. 2 概要 GitLab を介した多人数での開発や情報共有について述べる.まず GitLab におけるプロジェクトのアクセ ス種別について述べ,次にプロジェクトにおけるメンバー種別,グループの使い方について述べる. 2.1 プロジェクトのアクセス種別 プロジェクトのアクセス種別は以下のようになる. Private このプロジェクトに明示的に登録されたユーザしかアクセスできない Internal GitLab に登録されたユーザなら clone できる Public プロジェクトの url(特に https) を知っているものなら誰でも clone できる 2.2 プロジェクトにおけるメンバー種別 プロジェクトが Internal 以上であればメンバー登録されなくても clone はできる.しかしそれ以上のこと をしようとしたり,Private のプロジェクトなら clone するためにもメンバー登録されないければいけない. 登録されるメンバーの種別は以下のようなものがある. • Guest • Reporter • Developer • Master 1
  • 2. • Owner 詳しくは GitLab の help の User documentation-Public access を参照のこと.特に使用するものについて 簡単に説明する. Reporter Private プロジェクトに対して clone が出来る Developer branch を切ったり push 出来る Owner プロジェクト作成者と同等の権限がある 2.3 グループについて 作成したプロジェクトに登録する人間が基本的に決まっていて,しかも人数が多いとメンバー登録が面倒で ある.そのような場合,グループを使うと手間が減る.複数人数のメンバーをグループに登録しておくと,プ ロジェクト作成時に Namespace としてグループを選べてプロジェクトのメンバーとして初期登録できる.も しくはグループからプロジェクト作成が選べる. 2.4 多人数開発の方法 プロジェクトのアクセス種別およびメンバーのアクセス種別によって方法は異なる.大きく分けると以下の ようになる. Fork-Merge request GitLab の該当プロジェクトのページから Fork を選び,自分のところにプロジェクトのコピーを作成す る.以後,自分のプロジェクトとして編集を行い,適度なところで元のプロジェクトに Merge request を送る.元のプロジェクト管理者用は Merge request を受け取ったら差分を確認しながら merge して いいか考える. 該当プロジェクトにアクセスできるならこの方法となる. 直接編集 GitLab の該当プロジェクトを直接編集する.branch も作成できるし push も出来る. 該当プロジェクトの Developer 以上であれば可能である. 3 基本操作 3.1 Fork の方法 GitLab の該当プロジェクトの左ペインに Project があり,そのページ内右上に Fork という文字がある. それをクリックすると Fork できる. 3.2 直接編集 git clone して編集,普通に push する. 2
  • 3. 3.2.1 安全な直接編集 自分の名前等でブランチを作成して,その中で編集する.本筋のブランチとの merge は自分で行わず,ブ ランチ管理者 (作成者) に連絡する.ブランチの作成の仕方は,普通に git branch でも良いが,GitLab の該 当プロジェクトの左ペインに Commits があり,そのページ内に Branches がある.そこに New branch があ り,そこでも作成できる. 3.2.2 push 時のコンフリクト 多人数開発では,特にコンフリクトが懸念される.自分のワークツリーとリポジトリはコンフリクトが起き ておらず同一のものとしても (そのコンフリクトは Git Lev.3 で解消すること),自分のリポジトリとサーバの リポジトリのコンフリクトが生じる可能性がある.このコンフリクトが起きた場合,以下のコマンドによって 解消を試みる. • pull • fetch して merge/rebase pull = fetch して merge/rebase だが,変なことになった時のわけわからんさは pull > fetch して merge/rebase である.本当は fetch して merge/rebase の手順に慣れた方がよい. git pull .git/config で指定されているサーバのリポジトリをダウンロードし merge する. 4 基本運用 運用は,それぞれの使用環境で変わる.ここでは,倉重研究室の運用を基本として述べる. 4.1 プロジェクトのアクセス種別 GitLab.com を使用する場合,プロジェクトのアクセス種別は Private が基本である.研究室内 GitLab を 使用する場合,プロジェクトのアクセス種別は Internal が基本である. 4.2 Fork と直接編集どちらを使うか Fork および直接編集 (直接編集ではブランチ名に自分の名前を入れるかどうか),は運用による.Git- Lab.com を使用する場合は Fork が基本,研究室内 GitLab を使用する場合は直接編集が基本となる.方針は 以下の通り. Fork 他のプロジェクトをベースに自分用のものを作成したい or 作成者と使用者に分かれている or 顔を合 わせられる距離におらず直ぐにディスカッション等できない 直接編集 (リーダーなし) 一つのものを多人数で開発 or メンバー全員が信頼でき且つ顔を合わせられる距離 にいる 3
  • 4. 直接編集 (リーダーあり) Fork と直接編集 (リーダーなし) の中間で,一人の人に master の管理を任せた方 がよさそうな場合である.プロジェクト作成者が希望する場合など. 直接編集 (リーダーなし) と直接編集 (リーダーあり) のどちらにおいても,ブランチに内容と自分の名前を 入れて以下のようにする.二つの違いは,master に各ブランチを merge してタグ付けするのが全員なのか (リーダーなし),一人なのか (リーダーあり) である. 例 master developer-e greedy-kurashige hotfixes-issue1234-clione ここで GitLab には issue という機能があり,これからやりたいことや現在分かっている問題などを共有す ることができる.追加や確認などは web ブラウザ経由で可能であり,自動的に#番号が割り当てられる.こ の番号を使って issue1234(issue #1234) とするのが最も理想的である.ちなみに,commit 時のメッセージ に”fixing #1234”(複数の場合は fixing #1234, #1235 and #1236 のようにカンマや and で区切る) と入れ ると自動的に当該 issue を close(終わったことに) してくれる. 4