SlideShare uma empresa Scribd logo
1 de 40
今さら聞けない人のための
GitLabの始め方 Ubuntu編
GitLab 14対応版
みやはら とおる(@tmiyahar)
GitLabと私
• インフラエンジニア上がりの経営者
– 年に1案件ぐらいはガッツリやる程度
• Gitの使い方を覚えるためにGitLabを導入
– 根がインフラ屋なので自分でサーバーを立て
ないと気が済まない
• お客さんから社内リポジトリとしてGitLab入
れて、と言われて導入したことはある
• 社内でも使ってるけどノータッチ
• それとなくGitLabを勧める活動を継続中
2
今回作る環境について
• Ubuntu 20.04LTSにGitLab 14.1 Enterprise
Editionをインストール
– Enterprise Editionでもライセンスを有効にしな
ければCommunity Edition相当(GitLab Core)
– Omnibusインストールで必要なものがまとまっ
て入ります
3
GitLabをインストールする
• GitLabのWebページ 「Official Linux package
(recommended installation)」を参考に環境を構築
– https://about.gitlab.com/install/#ubuntu
– Kubernetesやクラウド上へのインストールも可能
1. GitLabのWebページ(https://about.gitlab.com/)の
Productメニューから「Install GitLab」を選択
2. インストールしたいOS・環境を選択
3. 手順に従ってインストール
4
GitLab 14インストールの注意点
• Let‘s EncryptによるTLS化がデフォルト手順
– ドキュメントでのインストール時の
EXTERNAL_URLの指定が"https://○○"に
→ローカルIPアドレスだとLet's EncryptのTLS証明
書生成がコケてインストール失敗
– EXTERNAL_URLの指定を"http://○○"に
• DNSの逆引き名前解決の設定が必要
– /etc/hostsではダメ
– インストールスクリプト(Chef利用)がコケるので、
gitlab-ctl reconfigureの実行が必要
5
Ubuntuのインストール
• 18.04LTSか20.04LTSを適当にインストール
– 適当≒インストール時に設定できることはほと
んどありません
• 仮想マシンで運用までする場合にはメモリ
は気持ち多め、ディスクも多めにしておくと
よい
– 後で増やせるように心構えをしておく
• インストール終わりが分かりにくいので注意
6
インストール完了
Reboot Nowで再起動
※curtin hookが回り続けるバグがあります
参考
インストールメディアをアンマウント
Failed表示は無視して
Enterキーを押して再起動
参考
Ubuntu 20.04LTSへのインストール
1. sudo apt-get update
2. sudo apt-get install -y curl openssh-server ca-certificates
tzdata perl
3. sudo apt-get install -y postfix
– 用途が求められるので適当に
4. curl
https://packages.gitlab.com/install/repositories/gitlab/git
lab-ee/script.deb.sh | sudo bash
5. sudo EXTERNAL_URL="http://gitlab.example.com"
apt-get install gitlab-ee
– 注)逆引き名前解決でコケるとconfigに失敗します
6. sudo gitlab-ctl reconfigure
9
←必ず実行
Postfixのインストール 種別
10
Internet Siteを選択
Postfixのインストール ホスト名
11
ホスト名をFQDNで指定
最後に手動でコンフィグする
• パッケージのインストールの最後でコンフィ
グがこける
• 忘れずにsudo gitlab-ctl reconfigureする事
12
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
Please configure a URL for your GitLab instance by setting `external_url`
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
管理者パスワードについて
• 一時ファイルに書き込まれるようになった
– /etc/gitlab/initial_root_password
– 以前は初期ログイン時に設定していた
• コンフィグの最後に以下の様に表示される
13
Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first
reconfigure run after 24 hours.
GitLabにプロジェクトを作成する
14
GitLabの管理単位
ファイルサーバーと大体同じと思えばOK
• ユーザー
– 各開発者のアカウント
• グループ
– ユーザーをまとめた管理単位
• プロジェクト
– ソースコードのリポジトリを含めた開発プロ
ジェクトに必要なもの一式
– ユーザー、あるいはグループに紐付けられる
15
GitLabで初期設定作業
1. rootパスワードを確認
– /etc/gitlab/initial_root_passwordに記載
2. http://gitlab.example.comにアクセス
3. ユーザーrootでログイン
4. ユーザーrootのパスワードを変更
– 右上のアイコン→Edit Profile→Password
5. 新しいユーザーを作成
– Menu→Admin→Users→New User
6. 新規ユーザーのパスワード設定
– ユーザー情報ページ→Edit
7. 新規ユーザーでログイン
16
初期ログインの状態
17
rootパスワード変更
18
プロジェクト作成とクローン
ユーザーtmiyaharを作成しています
1. 新規プロジェクトtestを作成
2. クライアントにリポジトリをクローン
– git clone http://gitlab.example.com/tmiyahar/test.git
• ユーザー認証が必要
19
$ git clone http://gitlab.example.com/tmiyahar/test.git
Cloning into 'test'...
Username for 'http://gitlab.example.com': tmiyahar
Password for 'http://tmiyahar@gitlab.example.com': ※パスワード
warning: You appear to have cloned an empty repository.
リモートリポジトリ
ローカルリポジトリ
リポジトリをクローン
同一内容
リポジトリのクローン
Gitのリポジトリ種別
• ローカルリポジトリ
– 開発作業用クライアントに作成される
– リモートリポジトリをクローンすると作成される
• クローンが一番分かりやすい
– 作業は他の開発者には影響しない
• リモートリポジトリ
– GitLab上に作成される
– 各開発者で共有される
21
ローカルリポジトリの確認
• クローンしたリポジトリを確認
– $ cd ~/test
– $ git switch -c main
– $ ls -a
– 現時点では空っぽです
– .gitディレクトリが作られており、リポジトリの各
種情報が格納されている
22
ステージングとコミットの関係
23
作業用
ディレクトリ
ステージング
領域
ローカル
リポジトリ
$ git switch
$ git add
$ git commit
リポジトリは
ブランチ毎の
ファイルセットを
保持している
main
develop
リモートリポジトリ
ローカルリポジトリ
自分のコミットをプッシュ
プッシュとプル
リモートリポジトリ
ローカルリポジトリ
他人のコミットをプル
リポジトリにファイルを追加
1. 作業ディレクトリにファイルを追加
– $ touch README.md
2. ファイルをステージング
– $ git add README.md
3. ステージングしたファイルをコミット
– $ git commit
4. コミットしたファイルをリモートにプッシュ
– 同時にローカルリポジトリのアップストリーム設定
– $ git push -u origin main
• mainブランチのアップストリームをリモートリポジトリの
main(remotes/origin/main)に設定
25
リポジトリ操作実行例
$ touch README.md
$ git add README.md
$ git commit
[main (root-commit) 77eb748] add README.md
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 README.md
$ git push -u origin main
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 218 bytes | 218.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To http://gitlab.example.com/tmiyahar/test.git
* [new branch] main -> main
Branch 'main' set up to track remote branch 'main' from 'origin'.
26
ブランチの流れ
27
main
develop
① $ git switch -c develop ③ $ git merge develop
②コミットを繰り返す
ブランチを作成する
1. ブランチの確認
– $ git branch
– 現時点ではローカルのmainだけ
2. ブランチの新規作成と切り替え
– $ git switch -c develop
– 従来のgit checkout -b相当
3. ブランチの確認
– $ git branch
– 作業しているブランチがdevelopに変更されている
28
ブランチ作成実行例
$ git branch
* main
$ git switch -c develop
Switched to a new branch 'develop’
$ git branch
* develop
main
29
developブランチで作業
1. developブランチのREADME.mdを修正
– エディタで何か書きます
2. 修正をステージングとコミット
– $ git add README.md
– $ git commit
– $ git commit -a でまとめて実行も可能
3. mainブランチのREADME.mdを確認
– $ git switch main
– $ cat README.md
– developブランチでの修正が影響していない事を
確認
30
developブランチをマージする
1. developブランチにコミットされた修正差分
をmainブランチにマージする
– $ git merge develop
2. README.mdを確認
– developブランチで行った修正が反映される
• マージは取り込む側のブランチで行う
– だから、取り込んで欲しいときは「マージ(プ
ル)リクエスト」を作成する
31
コンフリクト発生と解決
32
ローカル
リポジトリ
リモート
リポジトリ
①コミット1をpush
②コミット2を未push
⑥pull
③別の開発者
がpush
⑦コミット3をpush
④コミット2をpush
⑤コンフリクト発生
×
修正の重複(コンフリクト)の解消
• git push時に既にリモートが更新されているとプッ
シュに失敗する
• git pullするとコンフリクト発生が通知され、対象と
なるファイルが以下のようになる
• 適切に修正し、再度コミット&プッシュ
33
developブランチで修正
<<<<<<< HEAD
ローカルのmainブランチで修正
=======
Webブラウザで修正
>>>>>>> fcfafd335fd5d6a4bb8938c1c2dcbe17788debf5
コンフリクト解消手順
1. WebブラウザでREADME.mdを確認
– この時点では空っぽです
2. Editボタンを押して何か書く
– 他のユーザーがpushしたのと同義
3. $ git push
– Webブラウザ側での変更が取り込まれておらず失敗
4. $ git pull
– コンフリクトが発生し、自動マージに失敗
5. README.mdを編集してコンフリクトを解消
6. 再度、コミット&プッシュします
– 今度は成功します
34
3. git push 失敗
$ git push
To http://gitlab.example.com/tmiyahar/test.git
! [rejected] main -> main (fetch first)
error: failed to push some refs to 'http://gitlab.example.com/tmiyahar/test.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
35
4. git pullするとコンフリクト発生
$ git pull
(rebase関係の設定をしろとhintが出るがとりあえず今回は無視)
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 232 bytes | 232.00 KiB/s, done.
From http://gitlab.example.com/tmiyahar/test
77eb748..9cb63b7 main -> origin/main
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Automatic merge failed; fix conflicts and then commit the result.
36
5. 6. コンフリクト修正と再push
$ vi README.md
$ git commit -a
[main 2705f27] Merge branch 'main' of
http://gitlab.example.com/tmiyahar/test
$ git push
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 16 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (6/6), 537 bytes | 537.00 KiB/s, done.
Total 6 (delta 0), reused 0 (delta 0), pack-reused 0
To http://gitlab.example.com/tmiyahar/test.git
9cb63b7..2705f27 main -> main
37
ブランチ戦略を考える
よくある質問
• Q. 「どのブランチ戦略がいいんですか?」
• A. 「ケースバイケース」
• 考慮すべき事(順不同)
– 開発者の人数や規模
– コミットやマージの頻度や粒度
– テストの頻度や方法
– リリースの頻度や方法
38
この先に考えたい事
• テスト駆動やチケット駆動との連携
• テストの自動化
– コードコミット→テスト→マージリクエストのサ
イクルの自動化
– 粒度が小さいとマージ処理する人が大変
• チケットの自動化
– テスト失敗時に自動的にチケット発行
– テスト成功時に自動的にチケットクローズ
39
ありがとうございました
40

Mais conteúdo relacionado

Mais procurados

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Kohei Tokunaga
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理H2O Space. Co., Ltd.
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンAkihiko Horiuchi
 
Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介onozaty
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGoogle Cloud Platform - Japan
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けモノビット エンジン
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計増田 亨
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能Kohei Tokunaga
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?ichirin2501
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことRecruit Lifestyle Co., Ltd.
 
goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?mori takuma
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2tamtam180
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 

Mais procurados (20)

Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介Redmine issue assign notice plugin の紹介
Redmine issue assign notice plugin の紹介
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
 
Plan 9のお話
Plan 9のお話Plan 9のお話
Plan 9のお話
 
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分けネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
 
世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計世界でいちばんわかりやすいドメイン駆動設計
世界でいちばんわかりやすいドメイン駆動設計
 
BuildKitの概要と最近の機能
BuildKitの概要と最近の機能BuildKitの概要と最近の機能
BuildKitの概要と最近の機能
 
なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?なかったらINSERTしたいし、あるならロック取りたいやん?
なかったらINSERTしたいし、あるならロック取りたいやん?
 
Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
 
goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?goで末尾再帰最適化は使えるか?
goで末尾再帰最適化は使えるか?
 
initramfsについて
initramfsについてinitramfsについて
initramfsについて
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
自宅インフラの育て方 第2回
自宅インフラの育て方 第2回自宅インフラの育て方 第2回
自宅インフラの育て方 第2回
 

Semelhante a 今さら聞けない人のためのGitLabの始め方 Ubuntu編

今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版VirtualTech Japan Inc./Begi.net Inc.
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版VirtualTech Japan Inc./Begi.net Inc.
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!ymmt
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座貴一 末田
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門Takashi Imagire
 
20120324 git training
20120324 git training20120324 git training
20120324 git trainingTakeshi AKIMA
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理Takafumi Yoshida
 
バージョン管理
バージョン管理バージョン管理
バージョン管理Misa Kondo
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Makoto Kawano
 
Githubサービスについて
GithubサービスについてGithubサービスについて
GithubサービスについてAkura Pi
 
Git 入門
Git 入門Git 入門
Git 入門y-uti
 

Semelhante a 今さら聞けない人のためのGitLabの始め方 Ubuntu編 (20)

今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21今さら聞けない人のためのGit超入門 2019/11/21
今さら聞けない人のためのGit超入門 2019/11/21
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
 
今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版今さら聞けない人のためのGit超入門 GitLab 13対応版
今さら聞けない人のためのGit超入門 GitLab 13対応版
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
 
今さら聞けない人のためのGit超入門
今さら聞けない人のためのGit超入門今さら聞けない人のためのGit超入門
今さら聞けない人のためのGit超入門
 
今さら聞けない人のためのGit超入門 2020/12/19
今さら聞けない人のためのGit超入門 2020/12/19今さら聞けない人のためのGit超入門 2020/12/19
今さら聞けない人のためのGit超入門 2020/12/19
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
2018 07-18 git-hub講座
2018 07-18 git-hub講座2018 07-18 git-hub講座
2018 07-18 git-hub講座
 
今さら聞けない人のためのGit超入門 OSC2018広島版
今さら聞けない人のためのGit超入門 OSC2018広島版今さら聞けない人のためのGit超入門 OSC2018広島版
今さら聞けない人のためのGit超入門 OSC2018広島版
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門
 
今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門今さら聞けない人のためのgit超入門
今さら聞けない人のためのgit超入門
 
20120324 git training
20120324 git training20120324 git training
20120324 git training
 
一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理一人でもはじめるGitでバージョン管理
一人でもはじめるGitでバージョン管理
 
バージョン管理
バージョン管理バージョン管理
バージョン管理
 
Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)Python for Data Analysis第1回勉強会(+git入門)
Python for Data Analysis第1回勉強会(+git入門)
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Githubサービスについて
GithubサービスについてGithubサービスについて
Githubサービスについて
 
Git 入門
Git 入門Git 入門
Git 入門
 
Yapc2012資料
Yapc2012資料Yapc2012資料
Yapc2012資料
 

Mais de VirtualTech Japan Inc./Begi.net Inc.

爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』VirtualTech Japan Inc./Begi.net Inc.
 
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~VirtualTech Japan Inc./Begi.net Inc.
 
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)VirtualTech Japan Inc./Begi.net Inc.
 
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜VirtualTech Japan Inc./Begi.net Inc.
 
オープンソースカンファレンスへの参加のススメ
オープンソースカンファレンスへの参加のススメオープンソースカンファレンスへの参加のススメ
オープンソースカンファレンスへの参加のススメVirtualTech Japan Inc./Begi.net Inc.
 
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツMIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツVirtualTech Japan Inc./Begi.net Inc.
 

Mais de VirtualTech Japan Inc./Begi.net Inc. (20)

爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
 
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
 
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
 
今さら聞けない人のためのSSH超入門
今さら聞けない人のためのSSH超入門今さら聞けない人のためのSSH超入門
今さら聞けない人のためのSSH超入門
 
OSCのこれまでを振り返るとしたらこんな感じ?
OSCのこれまでを振り返るとしたらこんな感じ?OSCのこれまでを振り返るとしたらこんな感じ?
OSCのこれまでを振り返るとしたらこんな感じ?
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
 
今さら聞けない人のためのDevOps超入門 ODC2023編
今さら聞けない人のためのDevOps超入門 ODC2023編今さら聞けない人のためのDevOps超入門 ODC2023編
今さら聞けない人のためのDevOps超入門 ODC2023編
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
DBチューニング超入門
DBチューニング超入門DBチューニング超入門
DBチューニング超入門
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
MIRACLE LINUX 9にAnsibleをインストールした話
MIRACLE LINUX 9にAnsibleをインストールした話MIRACLE LINUX 9にAnsibleをインストールした話
MIRACLE LINUX 9にAnsibleをインストールした話
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
最近のOSCと今後について
最近のOSCと今後について最近のOSCと今後について
最近のOSCと今後について
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
オープンソースカンファレンスへの参加のススメ
オープンソースカンファレンスへの参加のススメオープンソースカンファレンスへの参加のススメ
オープンソースカンファレンスへの参加のススメ
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツMIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
 

今さら聞けない人のためのGitLabの始め方 Ubuntu編