SlideShare a Scribd company logo
gitのいろは
今回の目標
・gitの大枠を理解できる。
・業務でスムーズに利用できる。
gitとは
リーナス・トーバルズ(Linuxの親)
gitとは
分散型バージョン管理システム
SVN git
リモート リモート
gitとは
・メリット
高速に動作する
作業の大半をローカルのみで作業できる
githubなどのサービスを利用できる
gitの概念
・ワークツリー
gitで管理するディレクトリやファイルそのもの。
・ローカルレポジトリ
自身の作業環境にあるレポジトリ。実態は.gitディレクトリ。
・リモートレポジトリ
リモートサーバーに保存されている中心レポジトリ。github,gitlabはそのサービスやOSS。
・インデックス(ステージングエリア)
これからgitに登録するよーと一時保存しておく場所。
gitの概念
・gitは履歴のスナップショットを保存している。
基本的に差分をとっているのではない!
・HEAD
現在作業している場所を表す! master
develop
実際の作業手順
1.gitの初期化(またはクローン)
2.ファイル編集
3.ファイルの一時保存(git add)
4.gitへ記録(git commit)
5.リモートの変更分の取得(git pull)
(コンフリクトの解決)
6. 変更分をリモートへ送信(git push)
ローカルレポジトリの操作
リモートリポジトリとの連携
ローカルレポジトリの操作
1.gitの初期化(またはクローン)
2.ファイル編集
3.ファイルの一時保存(git add)
4.gitへ記録(git commit)
git init
git config (--global) [user.name, user.email, color.ui]
git add
git status
git diff
git reset
git commit
git log
リモートリポジトリとの連携
5.リモートの変更分の取得(git pull)
(コンフリクトの解決)
6. 変更分をリモートへ送信(git push)
git remote origin [url]
git pull -u origin master
git push origin master
コミット情報
コミット情報には何が入っているの?
・リビジョン(sha1ハッシュ)
・コミットメッセージ
・author(コミットを作成した人)、commiter(コミットを適用した人)
・ファイルのスナップショット(git gcで最適化)
・1つ前のリビジョン
ブランチ操作
どのスナップショットかのポインタ
履歴を分岐させて役割を持たせる
例)
自分が作業するブランチ
本番で稼働している最新ブランチ
臨時修正用のhotfixブランチ
大本に影響なく作業を記録できる!
git branch
git branch -r
git branch [name]
git checkout [name]
git merge [name]
トラッキングブランチとは
リモートの最新をローカルに保存
git fetch origin
git branch -r
git log origin/master
リモートの最新
を取得
origin/master
pullの挙動
・git pull origin masterを行った時
git fetch originでリモートの最新をローカルに取得
git merge origin/materでマージ
pushの挙動
・matching(2.0以前のdefault)
ローカル、リモートの同一名をすべてpush
・upstream
現在のブランチにupstreamが設定されている(関連付けている)場合、そのリモートにpush
・simple(2.0からのdefault)
upstreamかつ同名である場合のみpush
・current
現在のブランチを同名のリモートにpush
・どういう時に発生する?
pull,merge時に
同名ファイルを編集している
コンフリクトを解決する master
develop
コンフリクトを解決する
・該当のファイルを編集する
・編集し終わったファイルをadd
・commitする
自動でメッセージが挿入される
マージの前に戻す場合は
git reset --hard ORIG_HEAD
ファーストフォワードマージを知る
コンフリクトしない場合、マージコミットを残さずにマージすること
master
develop
ファーストフォワードマージを知る
コンフリクトしない場合、マージコミットを残さずにマージすること
master
developでの作業記録がなくなる!
ファーストフォワードマージを知る
ファーストフォワードマージをしない。 --no-ff
master
develop
ファーストフォワードマージを知る
ファーストフォワードマージをしない。 --no-ff
master
develop
developでの作業記録をのこしてマージ!
作業を取り消す
・現在の変更を直前の変更にまとめる
git commit --amend
・直前のコミットを取り消す(ワークツリーは取り消さない)
git reset HEAD^
・git add を取り消す
git reset [file name]
git rebase?なにそれおいしいの?→初心者は使わない!
これさえ知っておけば業務に困らないはず!?

More Related Content

What's hot

dokku を本番環境で使ってみた話
dokku を本番環境で使ってみた話dokku を本番環境で使ってみた話
dokku を本番環境で使ってみた話
Kazuhiro Nishiyama
 
8つの操作ではじめるGit
8つの操作ではじめるGit8つの操作ではじめるGit
8つの操作ではじめるGit
DelfinoAzul
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
Kenji Takei
 
20220207 sd輪読&座談会#33 kitazaki
20220207 sd輪読&座談会#33 kitazaki20220207 sd輪読&座談会#33 kitazaki
20220207 sd輪読&座談会#33 kitazaki
Ayachika Kitazaki
 
git-followup @明石高専2E
git-followup @明石高専2Egit-followup @明石高専2E
git-followup @明石高専2E
Sanae Yamashita
 
Github第4章
Github第4章Github第4章
Github第4章
Yuto Suzuki
 
ゼミGit
ゼミGitゼミGit
ゼミGit
Takuya Uehara
 

What's hot (8)

dokku を本番環境で使ってみた話
dokku を本番環境で使ってみた話dokku を本番環境で使ってみた話
dokku を本番環境で使ってみた話
 
8つの操作ではじめるGit
8つの操作ではじめるGit8つの操作ではじめるGit
8つの操作ではじめるGit
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
 
20220207 sd輪読&座談会#33 kitazaki
20220207 sd輪読&座談会#33 kitazaki20220207 sd輪読&座談会#33 kitazaki
20220207 sd輪読&座談会#33 kitazaki
 
Git&GitHub入門
Git&GitHub入門Git&GitHub入門
Git&GitHub入門
 
git-followup @明石高専2E
git-followup @明石高専2Egit-followup @明石高専2E
git-followup @明石高専2E
 
Github第4章
Github第4章Github第4章
Github第4章
 
ゼミGit
ゼミGitゼミGit
ゼミGit
 

Similar to Gitのいろは

Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
sinsoku listy
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
Keisuke Oohata
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章
Akira Torii
 
Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
Yuto Suzuki
 
バージョン管理とGit
バージョン管理とGitバージョン管理とGit
バージョン管理とGitsinsoku listy
 
Git
GitGit
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
VirtualTech Japan Inc./Begi.net Inc.
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用CROOZ, inc.
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門Takashi Imagire
 
Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdf
Yoshiki Tanaka
 
Gitに触れよう
Gitに触れようGitに触れよう
Gitに触れよう
Trash Briefing ,Ltd
 
Githubサービスについて
GithubサービスについてGithubサービスについて
Githubサービスについて
Akura Pi
 
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
DoshishaUniv ProntiatVR
 
なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習
石橋 啓太
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
Hiroki Kouchi
 
超初心者のためのGitマニュアル
超初心者のためのGitマニュアル超初心者のためのGitマニュアル
超初心者のためのGitマニュアル
MasakiKato14
 
GitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理するGitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理する
jiro4989
 

Similar to Gitのいろは (20)

Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章
 
Git LFSを触ってみた
Git LFSを触ってみたGit LFSを触ってみた
Git LFSを触ってみた
 
バージョン管理とGit
バージョン管理とGitバージョン管理とGit
バージョン管理とGit
 
Git地図
Git地図Git地図
Git地図
 
Git
GitGit
Git
 
今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版今さら聞けない人のためのGit超入門 GitLab 14対応版
今さら聞けない人のためのGit超入門 GitLab 14対応版
 
Git extensions ws外部公開用
Git extensions ws外部公開用Git extensions ws外部公開用
Git extensions ws外部公開用
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門
 
Git_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdfGit_GitHub 入門者向けスライド.pdf
Git_GitHub 入門者向けスライド.pdf
 
Gitに触れよう
Gitに触れようGitに触れよう
Gitに触れよう
 
Githubサービスについて
GithubサービスについてGithubサービスについて
Githubサービスについて
 
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
 
Git (実践入門編)
Git (実践入門編)Git (実践入門編)
Git (実践入門編)
 
なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習なるべく噛み砕いたGit基礎講習
なるべく噛み砕いたGit基礎講習
 
Bitbucket and git
Bitbucket and gitBitbucket and git
Bitbucket and git
 
Git tutorial
Git tutorialGit tutorial
Git tutorial
 
超初心者のためのGitマニュアル
超初心者のためのGitマニュアル超初心者のためのGitマニュアル
超初心者のためのGitマニュアル
 
GitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理するGitHub Releasesからインストールしたコマンドを管理する
GitHub Releasesからインストールしたコマンドを管理する
 

Gitのいろは