SlideShare a Scribd company logo
Gitに触れよう
2017/05/19 勉強会
トラッシュブリーフィング合同会社
name: I.R
1
1 Gitってなに?
2 Gitのコマンドライン構文
3 様々なオプション・コマンド
4 HEADって何者?
5 まとめ と 今後
6 参考にした情報元
2
目次
Git とは
3
1.Gitってなに?
分散型バージョン管理システムです。
もともとはLinaxでソースコードを効果的に管理したかったらしい。
(もちろんMac, Windowsでも使用できます)
分散型(Git, Mercurial, Bazzar 等)
開発者はそれぞれが「リポジトリ全体」のコピー
を所有する。
その為、ネットワーク環境などが不要。
集中型(SVN, CVS 等)
1つのリポジトリを多数の開発者が触ることになる。
触るべきリポジトリにはサーバやネットワーク環境が
必要な為コストがかかったりする。
ローカル環境にリポジトリを保持する
分散型と集中型
4
2.Gitのコマンドライン構文
Gitにも共通の構文規約が存在します。
git [オプション] <コマンド> <args>
お約束
まず最初に必ず ”git” を入れます。
「これからGitを使いますよ」的な意味合いなので、スイッチやコマンドだけ入力して
も怒られます。
git -p help -a
右図は上記のコマンドを入力して出された
出力結果です。
ここではGitのヘルプをオプション付きで
呼び出しています。
5
3.様々なコマンド
Gitには様々なコマンドが用意されており、
これらを使用することでバージョン管理を行う。
config
Gitでは使用者の名前とメールアドレスの登録が必要です。
そのために設定を行う際に使用するコマンドです。
例:git config --global user.name “hogehoge” 使用者の名前を登録します。
add
Gitでは開発者がファイル全体ではなく、指定したファイルだけをコミットすることが出来ます。
そのために「ステージングエリア」と呼ばれる場所に一度ファイルを登録する必要があります。
この「ステージングエリア」への登録の際に使用するコマンドです。
例:git add hoge/fuga/piyo.html
「~/piyo.html」というファイルをステージングエリアに登録します。
6
3.様々なコマンド
branch
リポジトリで行う開発の経路です。
下図の青い丸部分に今までの履歴が入っているイメージで、1つ1つに名前が付いています。
このコマンドは現在のブランチを確認したり、新しく作成する際に使用します。
例1:git branch 現在のブランチやブランチの一覧を確認できます。
例2:git branch hoge/1001 引数を指定すれば「hoge/1001」というブランチを作成します。
checkout
ファイルのコピーを要求します。
個人的にはコピーの要求というと集中型のイメージであって、Gitではブランチの移動といった
認識をしています。
その為、ブランチを切り替える際に使用します。
例:git checkout hoge/1001 「hoge/1001」というブランチへ移動します。
7
3.様々なコマンド
commit
ステージングエリアに登録されたファイルをコミットします。
コミットする際にはコメントを残すと共有が円滑になると思います。
例:git commit addしておいたファイルをコミットします。
例:git commit -m “コメント” コミットの際にコメントを付与します。
push
リモートリポジトリにコミット内容をアップロードします。
リモートリポジトリは予め作成しておきましょう。
例:git push origin hoge/1001
リモート名「origin」に「hoge/1001」というブランチをアップします。
「hoge/1001」が「origin」に存在しない場合は自動で生成します。
ローカルリモート
8
3.様々なコマンド
pull
リモートリポジトリにアップされているディレクトリをローカルリポジトリへ取り込みます。
pushがアップロードに対してこちらはダウンロードといった感じ。
例:git pull origin master
pushと同じようにリモート名「origin」にある「master」ブランチを取得します。
log
コミット履歴を表示します。
このコマンドを使用した際に、今までコミットした時に付与してきたコメントを閲覧すること
ができます。
例:git log ブランチにコミットされた履歴を表示します。
9
3.様々なコマンド
diff
ファイル変更箇所の差分が確認できます。
個人的にはIDEとかで見れるならそっちの方がわかりやすいと思う。
例:git diff 最新のコミットと変更した箇所の差分が表示されます。
status
全体の変更が確認できます。
addする前に行うとステージングエリアに登録したいファイル、登録したくないファイルを
確認できるので便利。
例:git status addしたかどうか等の変更点の状態が確認できます。
10
4.HEADとは何者?
Gitのブランチには「HEAD」と付いているものがあります。
これは、現在使用しているブランチの最新コミットを表すものです。
デフォルトではmasterの先頭を表しており、ブランチを移動することでHEADも移動します。
また、 ~(チルダ) や ^(キャレット) を使用することでHEADを起点に相対位置を指定することが可能です。
~(チルダ)を付け加えることで何世代前の親であるかを指定することができる。
^(キャレット)を付け加えることで親が複数ある場合、何番目の親であるかを指定できる。
HEAD
HEAD~1
or
HEAD^
HEAD~1^1
HEAD~1^2
11
5.まとめ と 今後
Git の流れ おさらい
1. リポジトリを作成 もしくはクローンする
2. ファイルを編集してステージングエリアを経てコミットする
3. これまでの変更履歴をpushして自分の変更をアウトプットする
4. 他の開発者の変更をpullで取り込み、更に編集...
今後の課題
1. 存在は知ってるけど使ったことはない... ようなコマンドについて調査(submoduleとか...)
2. GitHubなどのGitと連携することが出来るWebサービスについて
3. 専門用語について
4. 他のバージョン管理システムとの明確な比較
12
6.参考にした情報元
・サルでもわかるGit入門
http://www.backlog.jp/git-guide/
・Git コマンドまとめ Qiita
http://qiita.com/merrill/items/375b20de0a5dbc35265d
・【初心者向け】Gitってなに?①まず流れを理解する(コードなし) Qiita
http://qiita.com/nutsinshell/items/96cb83aecf9d09a7a8bc
・Progate
https://prog-8.com/
・独習Git
https://www.amazon.co.jp/%E7%8B%AC%E7%BF%92Git-
%E3%83%AA%E3%83%83%E3%82%AF%E3%83%BB%E3%82%A6%E3%83%9E%E3%83%AA/dp/4798144614
・Learn Git Branching
http://k.swd.cc/learnGitBranching-ja/?demo
終わり
13

More Related Content

What's hot

Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
Yuto Suzuki
 
Next-L Enju 開発ワークショップ #02
Next-L Enju 開発ワークショップ #02Next-L Enju 開発ワークショップ #02
Next-L Enju 開発ワークショップ #02Kosuke Tanabe
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
hibiki443
 
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
Fuminobu Takeyama
 
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
Fuminobu Takeyama
 
20150801 QGIS初心者講習会資料
20150801 QGIS初心者講習会資料20150801 QGIS初心者講習会資料
20150801 QGIS初心者講習会資料
openconcierge
 
[ノマワクラボ 第2回Web勉強会] Git入門
[ノマワクラボ 第2回Web勉強会] Git入門[ノマワクラボ 第2回Web勉強会] Git入門
[ノマワクラボ 第2回Web勉強会] Git入門Toru Tamura
 
Gitの基本コマンド
Gitの基本コマンドGitの基本コマンド
Gitの基本コマンド
晋 小沼
 
なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習
石橋 啓太
 
Git運用
Git運用Git運用
Git運用
Sosuke Kimura
 
20130608 git-0
20130608 git-020130608 git-0
20130608 git-0
Kasu Unko
 
Debian Multiarch Support
Debian Multiarch SupportDebian Multiarch Support
Debian Multiarch Support
Keisuke Nakao
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
Takako Miyagawa
 
Openwrt
OpenwrtOpenwrt
平成生まれのための MINIX 講座
平成生まれのための MINIX 講座平成生まれのための MINIX 講座
平成生まれのための MINIX 講座
TAKANO Mitsuhiro
 
Open Build Serviceで楽をする
Open Build Serviceで楽をするOpen Build Serviceで楽をする
Open Build Serviceで楽をする
Kento Kawakami
 
Wordbench fukuoka
Wordbench fukuokaWordbench fukuoka
Wordbench fukuokaJunji Manno
 

What's hot (20)

Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
 
git-webtouchmeeting
git-webtouchmeetinggit-webtouchmeeting
git-webtouchmeeting
 
Next-L Enju 開発ワークショップ #02
Next-L Enju 開発ワークショップ #02Next-L Enju 開発ワークショップ #02
Next-L Enju 開発ワークショップ #02
 
大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方大容量ファイルもGitで管理。 Git LFSの使い方
大容量ファイルもGitで管理。 Git LFSの使い方
 
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
Portus でプライベート Docker レジストリを構築してみよう(openSUSE の紹介パート)
 
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
Portus でプライベート Docker レジストリを構築してみよう ― 予告編 ―
 
Pythonについて
PythonについてPythonについて
Pythonについて
 
20150801 QGIS初心者講習会資料
20150801 QGIS初心者講習会資料20150801 QGIS初心者講習会資料
20150801 QGIS初心者講習会資料
 
[ノマワクラボ 第2回Web勉強会] Git入門
[ノマワクラボ 第2回Web勉強会] Git入門[ノマワクラボ 第2回Web勉強会] Git入門
[ノマワクラボ 第2回Web勉強会] Git入門
 
Gitの基本コマンド
Gitの基本コマンドGitの基本コマンド
Gitの基本コマンド
 
なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習
 
Git運用
Git運用Git運用
Git運用
 
20130608 git-0
20130608 git-020130608 git-0
20130608 git-0
 
Debian Multiarch Support
Debian Multiarch SupportDebian Multiarch Support
Debian Multiarch Support
 
Bitbucket and git
Bitbucket and gitBitbucket and git
Bitbucket and git
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
Openwrt
OpenwrtOpenwrt
Openwrt
 
平成生まれのための MINIX 講座
平成生まれのための MINIX 講座平成生まれのための MINIX 講座
平成生まれのための MINIX 講座
 
Open Build Serviceで楽をする
Open Build Serviceで楽をするOpen Build Serviceで楽をする
Open Build Serviceで楽をする
 
Wordbench fukuoka
Wordbench fukuokaWordbench fukuoka
Wordbench fukuoka
 

Similar to Gitに触れよう

【アジャイル道場】Git運用勉強会
【アジャイル道場】Git運用勉強会【アジャイル道場】Git運用勉強会
【アジャイル道場】Git運用勉強会
Sosuke Kimura
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章
Akira Torii
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
Hiro Yoshioka
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Koji Shinba
 
ディレクターやデザイナーのためのリテラシー向上講座 git入門編
ディレクターやデザイナーのためのリテラシー向上講座 git入門編ディレクターやデザイナーのためのリテラシー向上講座 git入門編
ディレクターやデザイナーのためのリテラシー向上講座 git入門編
Yosuke INOUE
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
Tetsuo Yamabe
 
バージョン管理システムチュートリアル
バージョン管理システムチュートリアルバージョン管理システムチュートリアル
バージョン管理システムチュートリアル
Ryo Igarashi
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
Computational Materials Science Initiative
 
8つの操作ではじめるGit
8つの操作ではじめるGit8つの操作ではじめるGit
8つの操作ではじめるGit
DelfinoAzul
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用賢次 海老原
 
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
Kazumi IWANAGA
 
git&GitHub&SourceTree入門
git&GitHub&SourceTree入門git&GitHub&SourceTree入門
git&GitHub&SourceTree入門
Gamu2059
 
Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdf
Yoshiki Tanaka
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用CROOZ, inc.
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座Yusei Yamanaka
 
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
日本マイクロソフト株式会社
 
分散バージョン管理システムGitの紹介
分散バージョン管理システムGitの紹介分散バージョン管理システムGitの紹介
分散バージョン管理システムGitの紹介
tod esking
 

Similar to Gitに触れよう (20)

【アジャイル道場】Git運用勉強会
【アジャイル道場】Git運用勉強会【アジャイル道場】Git運用勉強会
【アジャイル道場】Git運用勉強会
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章
 
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011 VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-
 
ディレクターやデザイナーのためのリテラシー向上講座 git入門編
ディレクターやデザイナーのためのリテラシー向上講座 git入門編ディレクターやデザイナーのためのリテラシー向上講座 git入門編
ディレクターやデザイナーのためのリテラシー向上講座 git入門編
 
Gitのいろは
GitのいろはGitのいろは
Gitのいろは
 
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
GMO プライベート DMP 開発で 取り組んできた DevOps と今後の展望
 
バージョン管理システムチュートリアル
バージョン管理システムチュートリアルバージョン管理システムチュートリアル
バージョン管理システムチュートリアル
 
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアルVersion Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
 
8つの操作ではじめるGit
8つの操作ではじめるGit8つの操作ではじめるGit
8つの操作ではじめるGit
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用
 
Git地図
Git地図Git地図
Git地図
 
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
GitHub Codespaces と Azure でつくる、エンタープライズレベルの開発環境
 
git&GitHub&SourceTree入門
git&GitHub&SourceTree入門git&GitHub&SourceTree入門
git&GitHub&SourceTree入門
 
Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdf
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
 
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
 
分散バージョン管理システムGitの紹介
分散バージョン管理システムGitの紹介分散バージョン管理システムGitの紹介
分散バージョン管理システムGitの紹介
 
Git勉強会
Git勉強会Git勉強会
Git勉強会
 

Recently uploaded

アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
 
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdfクラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
TatsuyaHanayama
 
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Eventシグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
 
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer EventSolanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
K Kinzal
 
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
 

Recently uploaded (6)

アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
 
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdfクラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
クラウドネイティブにおけるセキュアなソフトウェア・サプライ・チェーンの考え方とベストプラクティス.pdf
 
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Eventシグネチャで始めるRustプログラミング - Superteam Japan Developer Event
シグネチャで始めるRustプログラミング - Superteam Japan Developer Event
 
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer EventSolanaで始めるRustプログラミング - Superteam Japan Developer Event
Solanaで始めるRustプログラミング - Superteam Japan Developer Event
 
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
 

Gitに触れよう