Suche senden
Hochladen
git入門(講義っぽく)
•
Als PPTX, PDF herunterladen
•
3 gefällt mir
•
1,457 views
kataware
Folgen
gitの入門編です。大学の講義でやる感じで作りました。 内容的にはバージョン管理システムについて gitの説明 gitのコマンドの使い方といった感じになります。
Weniger lesen
Mehr lesen
Ingenieurwesen
Melden
Teilen
Melden
Teilen
1 von 60
Jetzt herunterladen
Empfohlen
OSセキュリティチュートリアル
OSセキュリティチュートリアル
Kuniyasu Suzaki
UEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
Game Tools & Middleware Forum
いつやるの?Git入門
いつやるの?Git入門
Masakazu Matsushita
MySQLバックアップの基本
MySQLバックアップの基本
yoyamasaki
Secure element for IoT device
Secure element for IoT device
Kentaro Mitsuyasu
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
Kuniyasu Suzaki
Empfohlen
OSセキュリティチュートリアル
OSセキュリティチュートリアル
Kuniyasu Suzaki
UEFI時代のブートローダ
UEFI時代のブートローダ
Takuya ASADA
initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
品質と開発スピードの両立と、OSSのリスク低減策のご紹介 / GTMF2019
Game Tools & Middleware Forum
いつやるの?Git入門
いつやるの?Git入門
Masakazu Matsushita
MySQLバックアップの基本
MySQLバックアップの基本
yoyamasaki
Secure element for IoT device
Secure element for IoT device
Kentaro Mitsuyasu
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
Kuniyasu Suzaki
Istioサービスメッシュ入門
Istioサービスメッシュ入門
Yoichi Kawasaki
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
Jenkins 再入門
Jenkins 再入門
Jumpei Miyata
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
Private Azure Kubernetes Service cluster を触ってみよう♪
Private Azure Kubernetes Service cluster を触ってみよう♪
Igarashi Toru
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Security Conference
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)
Toru Makabe
15分でわかるGit入門
15分でわかるGit入門
to_ueda
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
NTT DATA Technology & Innovation
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
H2O Space. Co., Ltd.
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
Satoshi Shimazaki
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
Git&GitHub入門
Git&GitHub入門
hideaki honda
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
Computational Materials Science Initiative
Weitere ähnliche Inhalte
Was ist angesagt?
Istioサービスメッシュ入門
Istioサービスメッシュ入門
Yoichi Kawasaki
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
Kentaro Mitsuyasu
Jenkins 再入門
Jenkins 再入門
Jumpei Miyata
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
Motonori Shindo
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
DeNA
Private Azure Kubernetes Service cluster を触ってみよう♪
Private Azure Kubernetes Service cluster を触ってみよう♪
Igarashi Toru
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
NTT Communications Technology Development
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Toru Makabe
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
NTT DATA Technology & Innovation
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Security Conference
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
Kentaro Yoshida
半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)
Toru Makabe
15分でわかるGit入門
15分でわかるGit入門
to_ueda
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
NTT DATA Technology & Innovation
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
Shohei Okada
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
H2O Space. Co., Ltd.
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
Satoshi Shimazaki
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
Rakuten Group, Inc.
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
VirtualTech Japan Inc.
Was ist angesagt?
(20)
Istioサービスメッシュ入門
Istioサービスメッシュ入門
セキュアエレメントとIotデバイスセキュリティ2
セキュアエレメントとIotデバイスセキュリティ2
Jenkins 再入門
Jenkins 再入門
コンテナネットワーキング(CNI)最前線
コンテナネットワーキング(CNI)最前線
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
スマホゲームのチート手法とその対策 [DeNA TechCon 2019]
Private Azure Kubernetes Service cluster を触ってみよう♪
Private Azure Kubernetes Service cluster を触ってみよう♪
分散トレーシング技術について(Open tracingやjaeger)
分散トレーシング技術について(Open tracingやjaeger)
3分でわかるAzureでのService Principal
3分でわかるAzureでのService Principal
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
Kubernetes環境に対する性能試験(Kubernetes Novice Tokyo #2 発表資料)
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
BlueHat Seattle 2019 || Guarding Against Physical Attacks: The Xbox One Story
Fluentdのお勧めシステム構成パターン
Fluentdのお勧めシステム構成パターン
半日でわかる コンテナー技術 (入門編)
半日でわかる コンテナー技術 (入門編)
15分でわかるGit入門
15分でわかるGit入門
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
Pod Security AdmissionによるKubernetesのポリシー制御(Kubernetes Novice Tokyo #21 発表資料)
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
PHP-FPM の子プロセス制御方法と設定をおさらいしよう
DockerとPodmanの比較
DockerとPodmanの比較
ノンプログラマでも今日から使える「Git」でバージョン管理
ノンプログラマでも今日から使える「Git」でバージョン管理
CloudStack再入門!15分でおさらいするCloudStackの基礎
CloudStack再入門!15分でおさらいするCloudStackの基礎
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
Ähnlich wie git入門(講義っぽく)
Git&GitHub入門
Git&GitHub入門
hideaki honda
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
Computational Materials Science Initiative
バージョン管理とGit
バージョン管理とGit
sinsoku listy
バージョン管理システムチュートリアル
バージョン管理システムチュートリアル
Ryo Igarashi
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
Hiro Yoshioka
サイト運用者に向けたバージョン管理について
サイト運用者に向けたバージョン管理について
Takeo Noda
Git社内勉強会資料
Git社内勉強会資料
Kenji Takei
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-
Koji Shinba
Agileツール適合化分科会(gitとgit hub)
Agileツール適合化分科会(gitとgit hub)
masanori kataoka
GitHubワークショップ
GitHubワークショップ
Hiroaki Murayama
猫にはわからないGit講座
猫にはわからないGit講座
Yusei Yamanaka
Git 20100313
Git 20100313
Taku AMANO
Git 入門ちょい手前
Git 入門ちょい手前
Yuichi Goto
バージョン管理システム比較資料
バージョン管理システム比較資料
suzzsegv
20130608 git-0
20130608 git-0
Kasu Unko
15分でわかる分散バージョン管理システムgit
15分でわかる分散バージョン管理システムgit
Tomohiro MITSUMUNE
Git勉強会資料
Git勉強会資料
Kenji Takei
git&GitHub&SourceTree入門
git&GitHub&SourceTree入門
Gamu2059
Git SourceTreeでバージョン管理しよう
Git SourceTreeでバージョン管理しよう
富士見研究所
Git勉強会 #01
Git勉強会 #01
risaiku リサイク
Ähnlich wie git入門(講義っぽく)
(20)
Git&GitHub入門
Git&GitHub入門
Version Control System Tutorial バージョン管理システムチュートリアル
Version Control System Tutorial バージョン管理システムチュートリアル
バージョン管理とGit
バージョン管理とGit
バージョン管理システムチュートリアル
バージョン管理システムチュートリアル
VCS - Version Control System at Security and Programming camp 2011
VCS - Version Control System at Security and Programming camp 2011
サイト運用者に向けたバージョン管理について
サイト運用者に向けたバージョン管理について
Git社内勉強会資料
Git社内勉強会資料
Git -分散バージョン管理システム-
Git -分散バージョン管理システム-
Agileツール適合化分科会(gitとgit hub)
Agileツール適合化分科会(gitとgit hub)
GitHubワークショップ
GitHubワークショップ
猫にはわからないGit講座
猫にはわからないGit講座
Git 20100313
Git 20100313
Git 入門ちょい手前
Git 入門ちょい手前
バージョン管理システム比較資料
バージョン管理システム比較資料
20130608 git-0
20130608 git-0
15分でわかる分散バージョン管理システムgit
15分でわかる分散バージョン管理システムgit
Git勉強会資料
Git勉強会資料
git&GitHub&SourceTree入門
git&GitHub&SourceTree入門
Git SourceTreeでバージョン管理しよう
Git SourceTreeでバージョン管理しよう
Git勉強会 #01
Git勉強会 #01
Mehr von kataware
セキュリティ関連OSSツール紹介
セキュリティ関連OSSツール紹介
kataware
コンパイラ(Lexとyaccを使う)
コンパイラ(Lexとyaccを使う)
kataware
名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~
kataware
Isolation forest
Isolation forest
kataware
0511 lt
0511 lt
kataware
Abc#004d
Abc#004d
kataware
Mehr von kataware
(6)
セキュリティ関連OSSツール紹介
セキュリティ関連OSSツール紹介
コンパイラ(Lexとyaccを使う)
コンパイラ(Lexとyaccを使う)
名古屋セキュリティ勉強会LT~学内CTFの話~
名古屋セキュリティ勉強会LT~学内CTFの話~
Isolation forest
Isolation forest
0511 lt
0511 lt
Abc#004d
Abc#004d
git入門(講義っぽく)
1.
UNIXゼミ第10回 バージョン管理システム Git かたわれ @_ktwr 1
2.
バージョン管理システム(VCS) バージョン管理システム(VCS)とは 効率よくバージョン(版)を管理するためのシステム バージョン管理システムには2種類存在する 集中型バージョン管理システム 分散型バージョン管理システム App Ver1.3 App Ver1.4 2
3.
リポジトリの簡単な説明 リポジトリとは ファイルの変更とかを記録しておくディレクトリ 詳しい説明はGitの説明に入ってから 3 リポジトリ ファイル 更新情報 ログ モジュール 最新情報
4.
集中型バージョン管理システム 特徴 バージョンの管理を単一のマシンで管理 記録した変更履歴はすべてに反映 変更を記録するのにネットワーク接続が必要 中央 リポジトリ 4
5.
分散型バージョン管理システム 特徴 バージョンを複数のマシンで管理 ネットワーク接続なしで多くの操作が実行可能 5 リモート リポジトリ ローカル リポジトリ ローカル リポジトリ ローカル リポジトリ
6.
分散型バージョン管理システムGit 背景 Linuxのバージョン管理システムであるBitKeeperのライセ ンス提供が停止したために開発されたバージョン管理シス テム 機能 次の情報を精確に記録する ファイルの作成日時 ファイルの変更日時 ファイルの変更点 上記情報によりトレース,調査が可能になる 6
7.
Gitのディレクトリ構成 Gitでバージョン管理をするディレクトリの構成 7 git-root file1 file2 dir1 .git index config ワークツリー (作業ツリー) ステージングエリア gitレポジトリ
8.
リポジトリ Gitが追跡するデータベース リポジトリに格納するデータ コードの現在の状況 変更に対しての時間と施した人物…etc リポジトリに格納すべき情報 プロジェクトで利用するすべてのファイル ソースコード ビルドファイル…etc 8
9.
Gitでのリポジトリ ローカルリポジトリ ユーザが一人一人利用するための自分の計算機上に用 意するリポジトリ リモートリポジトリ 9
10.
10 リモート リポジトリ ローカル リポジトリ ローカル リポジトリ ローカル リポジトリ
11.
Gitでのリポジトリ ローカルリポジトリ ユーザが一人一人利用するための自分の計算機上に用 意するリポジトリ リモートリポジトリ 専用のサーバに配置し複数人で共有するためのリポジト リ 11
12.
12 リモート リポジトリ ローカル リポジトリ ローカル リポジトリ ローカル リポジトリ
13.
ワークツリー リポジトリに格納するあらゆるファイルについての変 更を加える場所 簡単に言うと版管理しているディレクトリ 13 git-root file1 file2 dir1 .git index config ワークツリー (作業ツリー) ステージングエリア gitレポジトリ
14.
Gitで使うその他の用語(1/2) HEAD 最新のコミットのこと 最新より一つ古いコミットはHEAD^,HEAD~~等となる 14 ID:258039... ID:72b499... ID:a854439...
ID:114514810... HEADHEAD^ HEAD~ HEAD^^ HEAD~~ HEAD~2 HEAD^^^ HEAD~~~ HEAD~3
15.
Gitで使うその他の用語(2/2) ハンク ファイル内の変更そのものを指す 連続した変更箇所が一つのハンクとなる 15 hoge.c hoge.c main関数 main関数 デバッグ関数 追加関数 sub関数
sub関数 ハンク
16.
ローカルでの版管理の流れ 1. リポジトリの作成 2. ファイルの変更 3.
ステージングエリアに追加 4. コミット 16 基本は2~4の繰り返し
17.
Gitで使うコマンド(1/21) リポジトリの作成git init 版管理したいディレクトリに移動し $ git
init と打つとそのディレクトリに「.git」ディレクトリが用意される 17 $ ls .git COMMIT_EDITMSG branches/ description index logs/ objects/ HEAD config hooks/ info/ modules/ refs/
18.
ファイルの追加とコミット コミット ファイルやディレクトリの追加や変更のリポジトリへの記録 コミットには個別のIDが与えられる リポジトリに追加することを「コミットする」という ステージングエリアへの追加 ステージングエリア ファイルの変更を一部送信するために用意されたインデックス Gitでのコミット 1. ステージングエリアに変更したいファイルを追加 2. コミットを作成しリポジトリに変更を追加 18
19.
ファイルの追加とコミット 19 ワークツリー ステージングエリア Gitリポジトリ git
init 更新 git add git commit
20.
Gitで使うコマンド(2/21) ステージングエリアへの追加 git add file1.cを版管理して変更を反映させたい場合 $
git add file1.c とすることで変更するファイルを指定する $ git add file1.c file2.c のように複数ファイルをステージングエリアへ追加できる $ git add –p -pオプションを使用するとハンクを指定してステージングエ リアへ追加できる $ git add –u -uオプションを使用するとバージョン管理中のファイルすべ てを更新する 20
21.
Gitで使うコマンド(3/21) コミット git commit ステージングエリアへファイルを追加し $
git commit と打つと変更がリポジトリに更新される コミットにはログメッセージをつけることが必須 -mオプションでエディタを開かずにメッセージをつける オプションなしでメッセージエディタを開く ログメッセージ 1行目:コミットでの変更内容の要約 2行目:空行 3行目:変更した理由 21
22.
Gitを効率よく進めるため Gitには効率よく版管理をするためにいろいろな仕組 みがある ファイルの内容の確認 履歴を利用した作業 変更を取り戻す ブランチを使った版管理 タグの利用 22
23.
Gitを効率よく進めるため Gitには効率よく版管理をするためにいろいろな仕組 みがある ファイルの内容の確認 履歴を利用した作業 変更を取り戻す ブランチを使った版管理 タグの利用 23
24.
ファイルの確認 Gitでは変更を確認するコマンドがある 必要なファイルをバージョン管理から除外できる ファイルなどの変更の差分の確認ができる ファイルの確認のコマンド リポジトリに起こった変更を見るコマンド リポジトリにあるものの差分を確認するコマンド ファイル名の変更やファイルの移動をするコマンド 24
25.
Gitで使うコマンド(4/21) リポジトリの変更を確認 git status リポジトリの状態を確認することができる 特に変更が無い場合 ステージングエリア上に追加があった場合 25 $
git status On branch master Nothing to commit, working directory clean $ git status On branch master Changes to be committed: (use “git reset HEAD <file>…” to unstage) modified: index.html
26.
Gitで使うコマンド(5/21) リポジトリの差分を確認 git diff ワークツリー,ステージングエリア,コミットの差分を確認 マーカで表示される マーカの定義 1.
-(記号) 2. ハンクが表示する変更前の行番号,行数 3. +(記号) 4. ハンクが表示する変更後の行番号,行数 git diffの使い方とオプション 26 $ git diff [option] オプション 説明 -cashed ステージングエリアとリポジトリの差分の確認 HEAD HEADの内容と現在のワークツリーの差分を確認
27.
Gitで使うコマンド(6/21) ファイル名の変更やファイルの移動 git mv ファイル名の変更や移動をした後は $
git add $ git rm が必要 git mvは上のコマンドを自動で実行する git mvの使い方 27 $ git mv [old filename] [new filename]
28.
ファイルを無視する リポジトリにとって不要なファイルの扱い ワークツリーの全てのファイルが必須とは限らない (実行ファイル,バックアップファイル等) git statusは版管理してないファイルを表示 .gitignoreファイルを利用し不要なファイルを無視できる .gitignoreファイル 設定方法 無視するファイルを記述する ワイルドカードが利用できる 28 .gitignore file1.c *.out *.bak
29.
Gitを効率よく進めるため Gitには効率よく版管理をするためにいろいろな仕組 みがある ファイルの内容の確認 履歴を利用した作業 変更を取り戻す ブランチを使った版管理 タグの利用 29
30.
Gitの履歴を利用した作業 Gitは開発の履歴を辿ることができる どこでどの変更が施されたのか? 何の目的での変更なのか? 履歴を辿ることの重要性 自分で変えたコードでも変えた理由を忘れることもある 他者のソースコードの変更の理由を知れる 30
31.
Gitで使うコマンド(7/21) コミットのログを出力 git log 指定したファイルやディレクトリの初めから現在までのコ ミットのログを出力する 指定がないとすべてのログを出力する 出力順は新しい順 git
log の使い方とオプション 31 $ git log [option] [filename] オプション 説明 -p ステージングエリアとリポジトリの差分の確認 -[数字] HEADの内容と現在のワークツリーの差分を確認 -pretty=short/full/fuller -grep=[pattern]
32.
Gitで使うコマンド(8/21) 指定したコミットの内容を出力 git show コミットIDを指定することによりそのIDのコミットの内容を 出力する 指定がない場合は最新のコミットの内容を出力する
git showの使い方 32 $ git show [commit id]
33.
Gitで使うコマンド(9/21) ファイルの変更の詳細出力 git blame ファイルの変更された各行の前に以下を出力 コミット名 コミットした人物 タイムスタンプ
git blameの使い方 33 $ git blame [filename]
34.
Gitを効率よく進めるため Gitには効率よく版管理をするためにいろいろな仕組 みがある ファイルの内容の確認 履歴を利用した作業 変更を取り戻す ブランチを使った版管理 タグの利用 34
35.
Gitで変更を取り戻す Gitには施した変更に対してそれを戻すことができる 変更をしたがこの変更はいらなかった 変更をしていった結果、プログラムが動作しなくなった 3種類の方法 過去の不要な変更を打ち消す新しいコミットの作成 ワークツリーでの変更を元に戻す ステージングエリアの記録を取り下げる 35 元に戻したい!!!
36.
Gitで使うコマンド(10/) 不要な変更を消し,新しいコミットを作る git revert 不必要な変更のcommit
idを選択して実行 -nオプションですぐにコミットをしないことも可能 選択したコミットの変更を元に戻す方法を見出す その結果を新しいコミットとして追加する(履歴の保全) git revertの使い方 36 $ git revert [commit id]
37.
Gitで使うコマンド(11/21) ワークツリーやファイルを元に戻すgit checkout コミットのチェックアウトとファイルのチェックアウト コミットのチェックアウト ワークツリーを指定したコミットと完全一致した状態にする ファイルのチェックアウト ワークツリーの他の部分に影響を与えずそのファイルの 過去のリビジョンを確認できる
git checkoutの使い方 37 コミットのチェックアウト $ git revert [commit id] ファイルのチェックアウト $ git checkout [file name]
38.
Gitで使うコマンド(12/21) 元の状態に復元できない元に戻すコマンド git reset git
revertと違い危険な方法 元の状態に復元する方法はない(一部例外を除く) ローカルな変更にのみ使い,リモートには使用すべきでない git resetの使い方とオプション 38 $ git revert [commit id] オプション 説明 -soft 以前のコミットをすべてステージングエリアに戻す -hard リポジトリ及びワークツリーからコミットを消し去る
39.
Gitを効率よく進めるため Gitには効率よく版管理をするためにいろいろな仕組 みがある ファイルの内容の確認 履歴を利用した作業 変更を取り戻す ブランチを使った版管理 タグの利用 39
40.
ブランチとは 履歴の流れを分岐して記録する ブランチの特徴 分岐したブランチは他のブランチの影響を受けない 同じリポジトリ内で複数の変更を行うことが可能 ブランチを統合することが可能 ブランチの作成の目的例 実験的変更のため 新しい機能を作成するため バグフィックスのため ブランチの概念図(○はコミット) 40
41.
Gitで使うコマンド(13/21) ブランチを確認,作成するコマンド git branch ブランチ名を指定して実行する ブランチ名の変更,削除もできる
git branchの使い方とオプション 41 $ git branch [option] オプション 説明 -m [oldbranch] [newbranch] ブランチの名前をoldbranchからnewbranchに変更する [branch] branchという名前のブランチを作成する -D [branch] branchという名前のブランチを削除する オプション無し 現在の全てのブランチを表示する
42.
Gitで使うコマンド(14/21) ブランチを切り替える git checkout 作業しているブランチを切り替えるコマンド ブランチを作成することもできる
git checkoutの使い方とオプション 42 $ git checkout [option] オプション 説明 -b [newbranch] [basebranch] basebranchに基づいてnewbranchを作成し切り替える [branch] branchに切り替える
43.
ブランチの統合 分岐したブランチの結果を統合する 統合する方法は3種類ある 直接マージ 圧縮コミット チェリーピック 統合(マージ)することにより,より効率的に開発可能 次スライドからマージに使うコマンドを先に説明する 43
44.
Gitで使うコマンド(15/21) コミットを統合する git merge ブランチの全てのコミットを統合する 全てのコミットを1つのコミットへと圧縮することも可能
git mergeの使い方 44 $ git merge [option] [branch] オプション 説明 -squash ブランチから全てのコミットを1つのコミットへと圧縮する
45.
Gitで使うコマンド(16/21) 単一のコミットを統合する git cherry-pick ブランチの指定したコミットをマージするコマンド
git cherry-pickの使い方とオプション 45 $ git cherry-pick [option] [commit id] オプション 説明 -n マージを実行するがコミットは実行しない
46.
直接マージ ブランチを別のブランチに統合する ブランチの履歴全体を別のブランチにマージできる マージ先にしたいブランチに切り替えてコマンドを使用する 46 ID:2580.. ID:72b4... ID:a854...
ID:114514... master branch git branch alternate branchgit merge
47.
圧縮コミット マージ元のコミットを1つにまとめてコミットする 直接マージと圧縮コミット 直接マージ • 複数のコミットがマージ先にそのまま統合される 圧縮コミット • 複数のコミットがマージ先に1つのコミットとして統合される 47 ID:2580..
ID:72b4... ID:a854... ID:114514... master branch git branch alternate branch git merge --squash git commit
48.
チェリーピック コミットを指定し,そのコミットを統合する 全てのコミットをマージする必要のないときに使用 48 ID:2580.. ID:72b4... ID:a854...
ID:114514... master branch git branch alternate branch git cherry-pick 4f52.. ID:4f52... ID:d1e5...
49.
Gitを効率よく進めるため Gitには効率よく版管理をするためにいろいろな仕組 みがある ファイルの内容の確認 履歴を利用した作業 変更を取り戻す ブランチを使った版管理 タグの利用 49
50.
タグとは コミットを参照しやすくするために利用するもの コミットだけとは限らない 軽量タグ 一番情報量が軽量なタグ 特定のコミットに名前を付けるために利用される 注釈付きタグ 作成者,作成日,作成メッセージのの情報を付け加えれる 署名付きタグ 注釈付きタグの情報+署名 50
51.
Gitで使うコマンド(17/21) タグを作るコマンド git tag オプションを指定することにより自在にタグを作成できる タグの後にコミットを指定することでコミットにタグを付ける
git tagの使い方とオプション 51 $ git tag [tag] $ git tag [tag] [commit name] オプション 説明 -a 注釈付きタグを作る -l これまでに作ったタグの一覧を表示する -l –n これまでに作ったタグをコメント付きで表示する -s 署名付きタグを作る
52.
リモートリポジトリを使った作業 分散バージョン管理の特徴 リモートリポジトリを使った複数人でのプロジェクト管理 リモートでの版管理の流れ 1. リモートリポジトリを作成 2. リモートリポジトリから更新を取得 3.
ファイルの更新 4. ローカルリポジトリ更新 5. リモートリポジトリに反映 52
53.
リモートでの版管理の流れ 53 リモート リポジトリ ローカル リポジトリ ローカル リポジトリ ローカル ディレクトリ ローカル ディレクトリ ファイル 更新 commit push fetch merge rebase
54.
ネットワークプロトコル(1/2) リモートリポジトリを利用するためのネットワーク gitは3つのプロトコルに対応 SSH git HTTP/HTTPS SSH 利用方法はファイルシステムにアクセスするのと同じ 54 [user]@[server]:[repository path]
55.
ネットワークプロトコル(2/2) git スピード重視で設計されたgit独自のプロトコル 9148ポートを使用 HTTP/HTTPS 厳格なファイアウォールでも対応可能 GitHubでは非対応 55 git://[server][repository path] http://[repository path]
56.
Gitで使うコマンド(18/21) リモートリポジトリを作成する git –bare
init git initではローカルリポジトリを作成した -bareオプションでワークツリーのないリポジトリとなる .gitと同じディレクトリ構成になる リポジトリ名に.gitを習慣的につける git –bare initの使い方 56 $ git init --bare [repository]
57.
Gitで使うコマンド(19/21) リモートリポジトリへ更新を反映する git push ローカルリポジトリでの変更をリモートに反映させる リモートとローカルの内容が同じとなる リモートリポジトリとブランチ元を指定して実行
git pushの使い方 57 $ git push [repository] [branch]
58.
Gitで使うコマンド(20/21) リモートリポジトリのクローンを作る git clone リモートリポジトリのローカルなコピーを作成 プロジェクトを新たなマシンで開発するときに利用 リモートのurlとリポジトリ名を指定して実行
git cloneの使い方 58 $ git clone [url] [repository]
59.
Gitで使うコマンド(21/21) リモートリポジトリの更新を取得する git pull リモートリポジトリの変更履歴をダウンロード ローカルリポジトリに自動でマージ 競合を手動で回避したい場合は
git fetchを使う git pullの使い方 59 $ git pull
60.
WindowsでのGit msysgit Windows用のGitを操作するツール CUIとGUIがある TortoisGit Windows用のGitを使いやすくするクライアント 実演します 60
Jetzt herunterladen