SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Downloaden Sie, um offline zu lesen
Git/GitHub 入門
Yoshiki Tanaka
1
Git/GitHubでできること
バージョン管理 共同開発
次のスライドで説明します!
2
バージョン管理とは
⇨ 変更履歴を管理すること
必要なファイルを
消してしまった...
以前のソース
コードまで戻りた
い...
Git/GitHubで改善!
3
共同開発とは
⇨ チームを組んで開発すること
効率良くチームで
開発したい...
ソースコードを共
有したい...
4
Git/GitHubで改善!
Git/GitHubの概念を理解する
Git ⇨ バージョン管理を行うシステムのこと
GitHub ⇨ クラウド上でGitを用いたバージョン管理を
共有ことができるサービスのこと
5
リポジトリの概念を理解する
リポジトリ ⇨ バージョン管理のための貯蔵庫
(バージョンごとにソースコードを保存する場所)
バージョン1.0.1
バージョン1.0.2
ローカルリポジトリ
⇨ 自分のPCにあるリポジトリ
リモートリポジトリ
⇨ 自分のPCに無いリポジトリ
6
Git/GitHubとリポジトリの全体図
開発者A
リモートリポジトリ
(ソースコードを共有する場所)
ローカルリポジトリ
(ソースコードを変更する場所)
開発者B
ローカルリポジトリ
7
Gitコマンドの設定
$ git config - -global user.name “<name>” コミットに付加される名前を設定する
$ git config - -global user.email “<email>” コミットに付加されるメールアドレスを設定す
る
$ git config - -global.color.ui auto コマンドラインの出力を見やすくするための色
を設定する
8
リポジトリの設定
$ git init <project-name> 指定した名前でローカルリポジトリを作成
する
$ remote add <name> <url> リモートリポジトリの設定を指定した名前で
追加する
$ git remote rename <old-name> <new-name> リモートリポジトリの設定を <old-name> か
ら<new-name>に変更する
$ git clone <url> 指定したURLのリポジトリをローカルリポ
ジトリとして複製する
9
Git/GitHubとリポジトリの全体図
開発者A
リモートリポジトリ
(ソースコードを共有する場所)
ローカルリポジトリ
(ソースコードを変更する場所)
開発者B
ローカルリポジトリ
10
次のスライドでこの部分を説明します!
リモートリポジトリからバージョンを反映する
ワークツリー
(作業現場)
リモートリポジトリ
git pull
11
プルの操作
$ git fetch <remote> リモートリポジトリから全てのブランチの更
新履歴をリモート追跡ブランチに取り込む
$ git merge <remote track branch> <branch> リモート追跡ブランチを指定のブランチに統
合する
$ git pull <remote repository> リモートブランチの更新履歴をリモートお追
跡ブランチに取り込み、リモート追跡ブラン
チを現在のブランチにマージする
12
Git/GitHubとリポジトリの全体図
開発者A
リモートリポジトリ
(ソースコードを共有する場所)
ローカルリポジトリ
(ソースコードを変更する場所)
開発者B
ローカルリポジトリ
13
次のスライドでこの部分を説明します!
ローカル/リモートリポジトリに変更を加える
ワークツリー
(作業現場)
インデックス/
ステージング
(待機室)
ローカルリポジトリ
リモートリポジトリ
git add
git commit
git push
14
⇨ファイルごと
⇨部分機能ごと
⇨全体機能ごと
コミットまでの操作
$ git status リポジトリの状態とステージングエリアの状態を確認する
$ git add <file> ワーキングディレクトリの変更をステージングエリアに追加する
$ git add - -all ワーキングディレクトリの全てのヘンクオをステージングエリアに
追加する
$ git reset <file> ファイルをステージングエリアから外すが、その内容は保持したま
まにする
$ git diff ワーキングディレクトリとステージングエリアの差分を表示する
$ git commit -m “<title>” ステージングされた変更をコミット
$ git commit - -amend 直前のコミットを新しいコミットで置き換える
15
プッシュの操作
$ git push リモートリポジトリが .git.configに指定されてい
る場合、現在のブランチのリモートの履歴を更
新する
$ git push <remote repository> <refspec> <refspec>として指定した名前をローカルリポジ
トリから探し、指定したリモートリポジトリの同名
の参照を更新する(ブランチ名を指定した場合
は、ブランチ名を含む参照をローカルリポジトリ
から検索し、リモートリポジトリの同名の参照を
更新する)
16
一時的な変更の記録
$ git stash 変更を監視されているファイルの変更の状態
とステージングエリアの状態を保存し、 HEAD
の状態までクリーンに戻す
$ git stash list 一時保存された記録(スタッシュ)を一覧で表
示する
$ git stash pop 直近に一時保存された記録(スタッシュ)か
ら、記録内容をワーキングディレクトリに反映
する
$ git stash drop 直近に一時保存された記録(スタッシュ)を破
棄する
17
コミット履歴の確認と修正
$ git log 現在のブランチのバージョン履歴を一覧で表
示する
$ git revert <commit> 指定コミットによって加えられた変更を元に戻
す新しいコミットを生成し、適用する
$ git reset <commit> 現在のブランチのHEADを指定コミットまで移
動し、ステージングされた内容をクリアし、
ワーキングディレクトリの変更状態を保つ
$ git reset - -hard <commit> 現在のブランチのHEADをしてコミットまで移
動し、ステージングエリアとワーキングディレ
クトリの状態をクリアする
18
ブランチの概念を理解する
ブランチ ⇨ ワークツリー内でバージョンを分岐させて開発でき
る機能
バージョンA バージョンA
バージョンC
19
バージョンB
ブランチの操作一覧
$ git branch リポジトリ上のローカルブランチを一覧で表示
する
$ git branch <branch-name> 新規ブランチを作成
$ git checkout <branch-name> 指定したブランチに切り替え、ワーキングディ
レクトリを更新する
$ git merge <branch> 指定したブランチの履歴を現在のブランチに
統合する
$ git branch -d <branch-name> 指定したローカルブランチを削除
$ git branch -m <branch-name> 現在のブランチの名前を <branch-name>に
変更する
20
実践
【Mac】Gitの環境構築をしよう!
https://prog-8.com/docs/git-env
【Windows】Gitの環境構築をしよう!
https://prog-8.com/docs/git-env-win
⇨ 以下のサイトを修了しよう!
21
参考文献
● 「GitHub実践入門」著者:大塚弘記
● 「エンジニアのためのGitの教科書: 実践で使える!バージョン管理とチーム開発手
法」著者:河村聖悟、 太田智彬、 増田佳太
● 「いまさら聞けないGitとGitHubの違いって何?」
https://www.i3design.jp/in-pocket/3111
● Gitコマンドまとめ
https://drive.google.com/drive/folders/1y9wHbY4v-_HH4ffX-2eYWE9qI42z20
ao?usp=sharing
22

Weitere ähnliche Inhalte

Was ist angesagt?

バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフロー
add20
 

Was ist angesagt? (20)

Python 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそうPython 3.9からの新定番zoneinfoを使いこなそう
Python 3.9からの新定番zoneinfoを使いこなそう
 
Git flowの活用事例
Git flowの活用事例Git flowの活用事例
Git flowの活用事例
 
デザイナのためのGit入門
デザイナのためのGit入門デザイナのためのGit入門
デザイナのためのGit入門
 
バージョン管理のワークフロー
バージョン管理のワークフローバージョン管理のワークフロー
バージョン管理のワークフロー
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
監視 Overview
監視 Overview監視 Overview
監視 Overview
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャ
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
 
ドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinxドキュメントを作りたくなってしまう魔法のツールSphinx
ドキュメントを作りたくなってしまう魔法のツールSphinx
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門Linux女子部 systemd徹底入門
Linux女子部 systemd徹底入門
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」プログラミング勉強会「オトナのGit入門」
プログラミング勉強会「オトナのGit入門」
 
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめ「機械学習:技術的負債の高利子クレジットカード」のまとめ
「機械学習:技術的負債の高利子クレジットカード」のまとめ
 
シリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのかシリコンバレーの「何が」凄いのか
シリコンバレーの「何が」凄いのか
 

Ähnlich wie Git_GitHub 入門者向けスライド.pdf

猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
Yusei Yamanaka
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門
Takashi Imagire
 
Git introduction
Git introductionGit introduction
Git introduction
totzyuta
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-
Koji Shinba
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
Takashi Uemura
 

Ähnlich wie Git_GitHub 入門者向けスライド.pdf (20)

Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
Github勉強会~Git・Githubを用いて共同開発・バージョン管理をしよう~
 
猫にはわからないGit講座
猫にはわからないGit講座猫にはわからないGit講座
猫にはわからないGit講座
 
GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理GitHubで学ぶバージョン管理
GitHubで学ぶバージョン管理
 
@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門@s_ssk13さん向けGitHub入門
@s_ssk13さん向けGitHub入門
 
ゼミGit
ゼミGitゼミGit
ゼミGit
 
ゆるふわっGit入門
ゆるふわっGit入門ゆるふわっGit入門
ゆるふわっGit入門
 
Git社内勉強会資料
Git社内勉強会資料Git社内勉強会資料
Git社内勉強会資料
 
Git introduction
Git introductionGit introduction
Git introduction
 
Git introduction
Git introductionGit introduction
Git introduction
 
Git&GitHub入門
Git&GitHub入門Git&GitHub入門
Git&GitHub入門
 
Git 20100313
Git 20100313Git 20100313
Git 20100313
 
Git地図
Git地図Git地図
Git地図
 
Git 初心者講座 by forkwell
Git 初心者講座 by forkwellGit 初心者講座 by forkwell
Git 初心者講座 by forkwell
 
Build insider offline session チームでのgit
Build insider offline session チームでのgitBuild insider offline session チームでのgit
Build insider offline session チームでのgit
 
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-Git -分散バージョン管理システム-
Git -分散バージョン管理システム-
 
医療データ解析者へ向けた Git・GitHub 入門
医療データ解析者へ向けた Git・GitHub 入門医療データ解析者へ向けた Git・GitHub 入門
医療データ解析者へ向けた Git・GitHub 入門
 
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~ Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
Yahoo! JAPAN MEETUP #21~Gitを使ったチーム開発体験@名古屋~
 
gitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみましたgitを使って、レポジトリの一部抽出forkしてみました
gitを使って、レポジトリの一部抽出forkしてみました
 
超初心者のためのGitマニュアル
超初心者のためのGitマニュアル超初心者のためのGitマニュアル
超初心者のためのGitマニュアル
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 

Git_GitHub 入門者向けスライド.pdf