Movatterモバイル変換


[0]ホーム

URL:


kataware, profile picture
Uploaded bykataware
PPTX, PDF1,488 views

git入門(講義っぽく)

gitの入門編です。大学の講義でやる感じで作りました。内容的にはバージョン管理システムについてgitの説明gitのコマンドの使い方といった感じになります。

Embed presentation

Download to read offline
UNIXゼミ第10回バージョン管理システムGitかたわれ@_ktwr1
バージョン管理システム(VCS)バージョン管理システム(VCS)とは効率よくバージョン(版)を管理するためのシステムバージョン管理システムには2種類存在する集中型バージョン管理システム分散型バージョン管理システムAppVer1.3AppVer1.42
リポジトリの簡単な説明リポジトリとはファイルの変更とかを記録しておくディレクトリ詳しい説明はGitの説明に入ってから 3リポジトリファイル更新情報ログ モジュール最新情報
集中型バージョン管理システム特徴バージョンの管理を単一のマシンで管理記録した変更履歴はすべてに反映変更を記録するのにネットワーク接続が必要中央リポジトリ4
分散型バージョン管理システム特徴バージョンを複数のマシンで管理ネットワーク接続なしで多くの操作が実行可能5リモートリポジトリローカルリポジトリローカルリポジトリローカルリポジトリ
分散型バージョン管理システムGit背景Linuxのバージョン管理システムであるBitKeeperのライセンス提供が停止したために開発されたバージョン管理システム機能次の情報を精確に記録するファイルの作成日時ファイルの変更日時ファイルの変更点上記情報によりトレース,調査が可能になる6
Gitのディレクトリ構成Gitでバージョン管理をするディレクトリの構成7git-rootfile1file2dir1.gitindexconfigワークツリー(作業ツリー)ステージングエリアgitレポジトリ
リポジトリGitが追跡するデータベースリポジトリに格納するデータコードの現在の状況変更に対しての時間と施した人物…etcリポジトリに格納すべき情報プロジェクトで利用するすべてのファイルソースコードビルドファイル…etc8
Gitでのリポジトリローカルリポジトリユーザが一人一人利用するための自分の計算機上に用意するリポジトリリモートリポジトリ9
10リモートリポジトリローカルリポジトリローカルリポジトリローカルリポジトリ
Gitでのリポジトリローカルリポジトリユーザが一人一人利用するための自分の計算機上に用意するリポジトリリモートリポジトリ専用のサーバに配置し複数人で共有するためのリポジトリ11
12リモートリポジトリローカルリポジトリローカルリポジトリローカルリポジトリ
ワークツリーリポジトリに格納するあらゆるファイルについての変更を加える場所簡単に言うと版管理しているディレクトリ13git-rootfile1file2dir1.gitindexconfigワークツリー(作業ツリー)ステージングエリアgitレポジトリ
Gitで使うその他の用語(1/2)HEAD最新のコミットのこと最新より一つ古いコミットはHEAD^,HEAD~~等となる14ID:258039... ID:72b499... ID:a854439... ID:114514810...HEADHEAD^HEAD~HEAD^^HEAD~~HEAD~2HEAD^^^HEAD~~~HEAD~3
Gitで使うその他の用語(2/2)ハンクファイル内の変更そのものを指す連続した変更箇所が一つのハンクとなる15hoge.c hoge.cmain関数 main関数デバッグ関数追加関数sub関数 sub関数ハンク
ローカルでの版管理の流れ1. リポジトリの作成2. ファイルの変更3. ステージングエリアに追加4. コミット16基本は2~4の繰り返し
Gitで使うコマンド(1/21)リポジトリの作成git init版管理したいディレクトリに移動し$ git initと打つとそのディレクトリに「.git」ディレクトリが用意される17$ ls .gitCOMMIT_EDITMSG branches/ description index logs/ objects/HEAD config hooks/ info/ modules/ refs/
ファイルの追加とコミットコミットファイルやディレクトリの追加や変更のリポジトリへの記録コミットには個別のIDが与えられるリポジトリに追加することを「コミットする」というステージングエリアへの追加ステージングエリアファイルの変更を一部送信するために用意されたインデックスGitでのコミット1. ステージングエリアに変更したいファイルを追加2. コミットを作成しリポジトリに変更を追加18
ファイルの追加とコミット19ワークツリー ステージングエリア Gitリポジトリgit init更新git addgit commit
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
Gitで使うコマンド(3/21)コミット git commitステージングエリアへファイルを追加し$ git commitと打つと変更がリポジトリに更新されるコミットにはログメッセージをつけることが必須-mオプションでエディタを開かずにメッセージをつけるオプションなしでメッセージエディタを開くログメッセージ1行目:コミットでの変更内容の要約2行目:空行3行目:変更した理由21
Gitを効率よく進めるためGitには効率よく版管理をするためにいろいろな仕組みがあるファイルの内容の確認履歴を利用した作業変更を取り戻すブランチを使った版管理タグの利用22
Gitを効率よく進めるためGitには効率よく版管理をするためにいろいろな仕組みがあるファイルの内容の確認履歴を利用した作業変更を取り戻すブランチを使った版管理タグの利用23
ファイルの確認Gitでは変更を確認するコマンドがある必要なファイルをバージョン管理から除外できるファイルなどの変更の差分の確認ができるファイルの確認のコマンドリポジトリに起こった変更を見るコマンドリポジトリにあるものの差分を確認するコマンドファイル名の変更やファイルの移動をするコマンド24
Gitで使うコマンド(4/21)リポジトリの変更を確認 git statusリポジトリの状態を確認することができる特に変更が無い場合ステージングエリア上に追加があった場合25$ git statusOn branch masterNothing to commit, working directory clean$ git statusOn branch masterChanges to be committed:(use “git reset HEAD <file>…” to unstage)modified: index.html
Gitで使うコマンド(5/21)リポジトリの差分を確認 git diffワークツリー,ステージングエリア,コミットの差分を確認マーカで表示されるマーカの定義1. -(記号)2. ハンクが表示する変更前の行番号,行数3. +(記号)4. ハンクが表示する変更後の行番号,行数 git diffの使い方とオプション26$ git diff [option]オプション 説明-cashed ステージングエリアとリポジトリの差分の確認HEAD HEADの内容と現在のワークツリーの差分を確認
Gitで使うコマンド(6/21)ファイル名の変更やファイルの移動 git mvファイル名の変更や移動をした後は$ git add$ git rmが必要git mvは上のコマンドを自動で実行するgit mvの使い方27$ git mv [old filename] [new filename]
ファイルを無視するリポジトリにとって不要なファイルの扱いワークツリーの全てのファイルが必須とは限らない(実行ファイル,バックアップファイル等)git statusは版管理してないファイルを表示.gitignoreファイルを利用し不要なファイルを無視できる.gitignoreファイル設定方法無視するファイルを記述するワイルドカードが利用できる28.gitignorefile1.c*.out*.bak
Gitを効率よく進めるためGitには効率よく版管理をするためにいろいろな仕組みがあるファイルの内容の確認履歴を利用した作業変更を取り戻すブランチを使った版管理タグの利用29
Gitの履歴を利用した作業Gitは開発の履歴を辿ることができるどこでどの変更が施されたのか?何の目的での変更なのか?履歴を辿ることの重要性自分で変えたコードでも変えた理由を忘れることもある他者のソースコードの変更の理由を知れる30
Gitで使うコマンド(7/21)コミットのログを出力 git log指定したファイルやディレクトリの初めから現在までのコミットのログを出力する指定がないとすべてのログを出力する出力順は新しい順git log の使い方とオプション31$ git log [option] [filename]オプション 説明-p ステージングエリアとリポジトリの差分の確認-[数字] HEADの内容と現在のワークツリーの差分を確認-pretty=short/full/fuller-grep=[pattern]
Gitで使うコマンド(8/21)指定したコミットの内容を出力 git showコミットIDを指定することによりそのIDのコミットの内容を出力する指定がない場合は最新のコミットの内容を出力する git showの使い方32$ git show [commit id]
Gitで使うコマンド(9/21)ファイルの変更の詳細出力 git blameファイルの変更された各行の前に以下を出力コミット名コミットした人物タイムスタンプ git blameの使い方33$ git blame [filename]
Gitを効率よく進めるためGitには効率よく版管理をするためにいろいろな仕組みがあるファイルの内容の確認履歴を利用した作業変更を取り戻すブランチを使った版管理タグの利用34
Gitで変更を取り戻すGitには施した変更に対してそれを戻すことができる変更をしたがこの変更はいらなかった変更をしていった結果、プログラムが動作しなくなった3種類の方法過去の不要な変更を打ち消す新しいコミットの作成ワークツリーでの変更を元に戻すステージングエリアの記録を取り下げる35元に戻したい!!!
Gitで使うコマンド(10/)不要な変更を消し,新しいコミットを作る git revert不必要な変更のcommit idを選択して実行-nオプションですぐにコミットをしないことも可能選択したコミットの変更を元に戻す方法を見出すその結果を新しいコミットとして追加する(履歴の保全)git revertの使い方36$ git revert [commit id]
Gitで使うコマンド(11/21) ワークツリーやファイルを元に戻すgit checkoutコミットのチェックアウトとファイルのチェックアウトコミットのチェックアウトワークツリーを指定したコミットと完全一致した状態にするファイルのチェックアウトワークツリーの他の部分に影響を与えずそのファイルの過去のリビジョンを確認できる git checkoutの使い方37コミットのチェックアウト$ git revert [commit id]ファイルのチェックアウト$ git checkout [file name]
Gitで使うコマンド(12/21)元の状態に復元できない元に戻すコマンド git resetgit revertと違い危険な方法元の状態に復元する方法はない(一部例外を除く)ローカルな変更にのみ使い,リモートには使用すべきでない git resetの使い方とオプション38$ git revert [commit id]オプション 説明-soft 以前のコミットをすべてステージングエリアに戻す-hard リポジトリ及びワークツリーからコミットを消し去る
Gitを効率よく進めるためGitには効率よく版管理をするためにいろいろな仕組みがあるファイルの内容の確認履歴を利用した作業変更を取り戻すブランチを使った版管理タグの利用39
ブランチとは履歴の流れを分岐して記録するブランチの特徴分岐したブランチは他のブランチの影響を受けない同じリポジトリ内で複数の変更を行うことが可能ブランチを統合することが可能ブランチの作成の目的例実験的変更のため新しい機能を作成するためバグフィックスのためブランチの概念図(○はコミット)40
Gitで使うコマンド(13/21)ブランチを確認,作成するコマンド git branchブランチ名を指定して実行するブランチ名の変更,削除もできる git branchの使い方とオプション41$ git branch [option]オプション 説明-m [oldbranch] [newbranch] ブランチの名前をoldbranchからnewbranchに変更する[branch] branchという名前のブランチを作成する-D [branch] branchという名前のブランチを削除するオプション無し 現在の全てのブランチを表示する
Gitで使うコマンド(14/21)ブランチを切り替える git checkout作業しているブランチを切り替えるコマンドブランチを作成することもできる git checkoutの使い方とオプション42$ git checkout [option]オプション 説明-b [newbranch] [basebranch] basebranchに基づいてnewbranchを作成し切り替える[branch] branchに切り替える
ブランチの統合分岐したブランチの結果を統合する統合する方法は3種類ある直接マージ圧縮コミットチェリーピック統合(マージ)することにより,より効率的に開発可能次スライドからマージに使うコマンドを先に説明する43
Gitで使うコマンド(15/21)コミットを統合する git mergeブランチの全てのコミットを統合する全てのコミットを1つのコミットへと圧縮することも可能 git mergeの使い方44$ git merge [option] [branch]オプション 説明-squash ブランチから全てのコミットを1つのコミットへと圧縮する
Gitで使うコマンド(16/21)単一のコミットを統合する git cherry-pickブランチの指定したコミットをマージするコマンド git cherry-pickの使い方とオプション45$ git cherry-pick [option] [commit id]オプション 説明-n マージを実行するがコミットは実行しない
直接マージブランチを別のブランチに統合するブランチの履歴全体を別のブランチにマージできるマージ先にしたいブランチに切り替えてコマンドを使用する46ID:2580.. ID:72b4... ID:a854... ID:114514...master branchgit branchalternate branchgit merge
圧縮コミットマージ元のコミットを1つにまとめてコミットする直接マージと圧縮コミット直接マージ• 複数のコミットがマージ先にそのまま統合される圧縮コミット• 複数のコミットがマージ先に1つのコミットとして統合される47ID:2580.. ID:72b4... ID:a854... ID:114514...master branchgit branchalternate branchgit merge --squashgit commit
チェリーピックコミットを指定し,そのコミットを統合する全てのコミットをマージする必要のないときに使用48ID:2580.. ID:72b4... ID:a854... ID:114514...master branchgit branchalternate branchgit cherry-pick 4f52..ID:4f52... ID:d1e5...
Gitを効率よく進めるためGitには効率よく版管理をするためにいろいろな仕組みがあるファイルの内容の確認履歴を利用した作業変更を取り戻すブランチを使った版管理タグの利用49
タグとはコミットを参照しやすくするために利用するものコミットだけとは限らない軽量タグ一番情報量が軽量なタグ特定のコミットに名前を付けるために利用される注釈付きタグ作成者,作成日,作成メッセージのの情報を付け加えれる署名付きタグ注釈付きタグの情報+署名50
Gitで使うコマンド(17/21)タグを作るコマンド git tagオプションを指定することにより自在にタグを作成できるタグの後にコミットを指定することでコミットにタグを付ける git tagの使い方とオプション51$ git tag [tag]$ git tag [tag] [commit name]オプション 説明-a 注釈付きタグを作る-l これまでに作ったタグの一覧を表示する-l –n これまでに作ったタグをコメント付きで表示する-s 署名付きタグを作る
リモートリポジトリを使った作業分散バージョン管理の特徴リモートリポジトリを使った複数人でのプロジェクト管理リモートでの版管理の流れ1. リモートリポジトリを作成2. リモートリポジトリから更新を取得3. ファイルの更新4. ローカルリポジトリ更新5. リモートリポジトリに反映52
リモートでの版管理の流れ53リモートリポジトリローカルリポジトリローカルリポジトリローカルディレクトリローカルディレクトリファイル更新commitpush fetchmergerebase
ネットワークプロトコル(1/2)リモートリポジトリを利用するためのネットワークgitは3つのプロトコルに対応SSHgitHTTP/HTTPSSSH利用方法はファイルシステムにアクセスするのと同じ54[user]@[server]:[repository path]
ネットワークプロトコル(2/2)gitスピード重視で設計されたgit独自のプロトコル9148ポートを使用HTTP/HTTPS厳格なファイアウォールでも対応可能GitHubでは非対応55git://[server][repository path]http://[repository path]
Gitで使うコマンド(18/21)リモートリポジトリを作成する git –bare initgit initではローカルリポジトリを作成した-bareオプションでワークツリーのないリポジトリとなる.gitと同じディレクトリ構成になるリポジトリ名に.gitを習慣的につける git –bare initの使い方56$ git init --bare [repository]
Gitで使うコマンド(19/21)リモートリポジトリへ更新を反映する git pushローカルリポジトリでの変更をリモートに反映させるリモートとローカルの内容が同じとなるリモートリポジトリとブランチ元を指定して実行 git pushの使い方57$ git push [repository] [branch]
Gitで使うコマンド(20/21)リモートリポジトリのクローンを作る git cloneリモートリポジトリのローカルなコピーを作成プロジェクトを新たなマシンで開発するときに利用リモートのurlとリポジトリ名を指定して実行 git cloneの使い方58$ git clone [url] [repository]
Gitで使うコマンド(21/21)リモートリポジトリの更新を取得する git pullリモートリポジトリの変更履歴をダウンロードローカルリポジトリに自動でマージ競合を手動で回避したい場合は git fetchを使う git pullの使い方59$ git pull
WindowsでのGitmsysgitWindows用のGitを操作するツールCUIとGUIがあるTortoisGitWindows用のGitを使いやすくするクライアント実演します60

Recommended

PDF
Sızma Testi ve Güvenlik Uygulamaları El Kitabı - Furkan Enes Polatoğlu
PDF
Siber İstihbarat Eğitim Dokümanı
PPTX
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
PDF
Linux KVM環境におけるGPGPU活用最新動向
PDF
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
PDF
仮想化技術によるマルウェア対策とその問題点
PPTX
AWS Amplify 入門
PDF
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
PDF
Siber Güvenlik ve Etik Hacking Sunu - 1
PDF
Siber Güvenlik ve Etik Hacking Sunu - 3
PDF
文科省セキュリティセミナー_20220818.pdf
PDF
Entity Framework(Core)についての概要を学ぼう
PDF
Agileツール適合化分科会(テスト自動化ツール)
PDF
ARMアーキテクチャにおけるセキュリティ機構の紹介
PDF
TECHTALK_20220802 Direct Query.pdf
PDF
[Japan Tech summit 2017] SEC 004
PDF
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
PDF
Microsoft Azureを使ったバックアップの基礎
PDF
Keycloakの最近のトピック
PDF
Unityでパフォーマンスの良いUIを作る為のTips
PPTX
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1
PPTX
UnityでUI開発を高速化した件
PDF
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
PDF
基礎から学ぶ組み込みAndroid
PDF
AWS初心者向けWebinar 失敗例を成功に変える AWSアンチパターンのご紹介
PDF
Ansibleはじめよぉ -Infrastructure as Codeを理解-
PDF
放送を取り巻く最新動画配信技術
KEY
一人でもはじめるGitでバージョン管理
PDF
Gitのよく使うコマンド

More Related Content

PDF
Sızma Testi ve Güvenlik Uygulamaları El Kitabı - Furkan Enes Polatoğlu
PDF
Siber İstihbarat Eğitim Dokümanı
PPTX
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
PDF
Linux KVM環境におけるGPGPU活用最新動向
PDF
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
PDF
仮想化技術によるマルウェア対策とその問題点
PPTX
AWS Amplify 入門
PDF
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)
Sızma Testi ve Güvenlik Uygulamaları El Kitabı - Furkan Enes Polatoğlu
Siber İstihbarat Eğitim Dokümanı
BTRisk - Siber Olay Tespit ve Mudahale Egitimi
Linux KVM環境におけるGPGPU活用最新動向
[Cloud OnAir] Apigee でかんたん API 管理 2019年12月12日 放送
仮想化技術によるマルウェア対策とその問題点
AWS Amplify 入門
3種類のTEE比較(Intel SGX, ARM TrustZone, RISC-V Keystone)

What's hot

PDF
Siber Güvenlik ve Etik Hacking Sunu - 1
PDF
Siber Güvenlik ve Etik Hacking Sunu - 3
PDF
文科省セキュリティセミナー_20220818.pdf
PDF
Entity Framework(Core)についての概要を学ぼう
PDF
Agileツール適合化分科会(テスト自動化ツール)
PDF
ARMアーキテクチャにおけるセキュリティ機構の紹介
PDF
TECHTALK_20220802 Direct Query.pdf
PDF
[Japan Tech summit 2017] SEC 004
PDF
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
PDF
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
PDF
Microsoft Azureを使ったバックアップの基礎
PDF
Keycloakの最近のトピック
PDF
Unityでパフォーマンスの良いUIを作る為のTips
PPTX
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1
PPTX
UnityでUI開発を高速化した件
PDF
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
PDF
基礎から学ぶ組み込みAndroid
PDF
AWS初心者向けWebinar 失敗例を成功に変える AWSアンチパターンのご紹介
PDF
Ansibleはじめよぉ -Infrastructure as Codeを理解-
PDF
放送を取り巻く最新動画配信技術
Siber Güvenlik ve Etik Hacking Sunu - 1
Siber Güvenlik ve Etik Hacking Sunu - 3
文科省セキュリティセミナー_20220818.pdf
Entity Framework(Core)についての概要を学ぼう
Agileツール適合化分科会(テスト自動化ツール)
ARMアーキテクチャにおけるセキュリティ機構の紹介
TECHTALK_20220802 Direct Query.pdf
[Japan Tech summit 2017] SEC 004
【CEDEC2017】Unityを使ったNintendo Switch™向けのタイトル開発・移植テクニック!!
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
Microsoft Azureを使ったバックアップの基礎
Keycloakの最近のトピック
Unityでパフォーマンスの良いUIを作る為のTips
オンライン技術勉強会 20201215 QSEoWサーバー管理者向けトレーニング_1
UnityでUI開発を高速化した件
SWEBOKにみるソフトウェアエンジニアリングの全体、および、 つながる時代のソフトウェアモデリング&品質
基礎から学ぶ組み込みAndroid
AWS初心者向けWebinar 失敗例を成功に変える AWSアンチパターンのご紹介
Ansibleはじめよぉ -Infrastructure as Codeを理解-
放送を取り巻く最新動画配信技術

Similar to git入門(講義っぽく)

KEY
一人でもはじめるGitでバージョン管理
PDF
Gitのよく使うコマンド
PDF
Git勉強会 2016 Gitで卒論を管理しよう回
PDF
15分でわかるGit入門
PDF
猫にはわからないGit講座
PDF
バージョン管理システムチュートリアル
PPTX
Gitに触れよう
PPT
SVN経験者のためのGIT入門
PDF
Version Control System Tutorial バージョン管理システムチュートリアル
PPTX
GitHubワークショップ
PPTX
Git勉強会 #01
PDF
PPTX
Git 勉強会
PPTX
第1回Git勉強会
PDF
Git勉強会
KEY
Git (実践入門編)
PPTX
Git勉強会
PDF
Gitを理解するためにおさえておきたい3つの図(工事中)
 
PDF
はじめてのGit
KEY
20120324 git training
一人でもはじめるGitでバージョン管理
Gitのよく使うコマンド
Git勉強会 2016 Gitで卒論を管理しよう回
15分でわかるGit入門
猫にはわからないGit講座
バージョン管理システムチュートリアル
Gitに触れよう
SVN経験者のためのGIT入門
Version Control System Tutorial バージョン管理システムチュートリアル
GitHubワークショップ
Git勉強会 #01
Git 勉強会
第1回Git勉強会
Git勉強会
Git (実践入門編)
Git勉強会
Gitを理解するためにおさえておきたい3つの図(工事中)
 
はじめてのGit
20120324 git training

More from kataware

PPTX
Isolation forest
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
PPTX
セキュリティ関連OSSツール紹介
PPTX
コンパイラ(Lexとyaccを使う)
PPTX
Abc#004d
PPTX
名古屋セキュリティ勉強会LT~学内CTFの話~
PPTX
0511 lt
Isolation forest
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
セキュリティ関連OSSツール紹介
コンパイラ(Lexとyaccを使う)
Abc#004d
名古屋セキュリティ勉強会LT~学内CTFの話~
0511 lt

git入門(講義っぽく)


[8]ページ先頭

©2009-2025 Movatter.jp