EBUG勉強会/20160227_Gitの話
をテンプレートにして作成
Start:
#setlinebreak(on)
#topicpath
*Gitの話
RIGHT:EBUG 第56回会合
2016年 2月27日、ながおか市民センター
川俣吉広、kaw@on.rim.or.jp
**VCSの特徴
歴代のVCS(Version Control System: バージョン管理システム)...
|名称|環境|管理単位|リポジトリ|h
|RCS |スタンドアロン|単一のファイル|単一のフ...
|CVS&br;Subversion|ネットワーク |ファイルツリー|ネット上...
|Git |~|~|複数のリポジトリがネット上に共存|
**リポジトリの内部構造
Gitではコミットする度にリポジトリ内部にひとまとまりのデー...
#ref(GitCommit.png)
-作成されるデータ構造の内訳
--コミットオブジェクト
一回のコミットそのものを表すデータオブジェクト。
---コミットオブジェクトを起点として、そのコミット時点の全...
---コミットオブジェクトにはその内容から算出されるSHA1のダ...
---コミットオブジェクトはその直前のコミットオブジェクトを...
--ツリーオブジェクト
コミットオブジェクト毎に、管理しているファイルの階層関係...
---ツリーオブジェクトはおおざっぱに言うとファイルの階層関...
OSが管理するファイルシステムそのものを記録しているわけで...
--BLOB (Binary Large OBject)
ファイルの内容を保持するオブジェクト。
---ファイルオブジェクトにもファイル内容のSHA1のダイジェス...
Gitでは、BLOBのオブジェクトIDが同じであれば、実ファイルシ...
-コミット
Gitでは、「コミット」という言葉は2つの意味を持つ。
一つは、リポジトリ内でコミットオブジェクトと、それが指し...
例えば「コミットを取り出す」とか「2つのコミットの差分を...
もう一つは、他のVCSでも用いられる「ファイルをリポジトリに...
この2つの違いを意識するとGitの理解が進む(と思う)。
-ブランチ
「ブランチ」という言葉も、他のVCSとは違う使われ方をする場...
#ref(Branches.png)
--「ブランチ」は「現在の最新のコミットを指し示すポインタ...
あるブランチに対しコミットが追加されると、そのブランチは...
--Gitのリポジトリを作成すると、「master」というブランチが...
--「HEAD」というブランチは、「現在作業対象となっているブ...
-コミットの操作
コミット操作(コミットの再試行、取り消し、変更)関連のコ...
--''git reset''
--''git checkout''
--''git commit --amend''
--''git revert''
--''git rebase''
--''git cherry-pick'' ...など...
>これらはそれぞれのコマンドを実行することによってコミット...
**分散リポジトリ
#ref(DVCS.png,around,right)
Gitでは複数のリポジトリを設置し、リポジトリ間でコミットを...
Gitの仕組み的には、全てのリポジトリは対等。
通常は、基点となるリポジトリを設け、そのリポジトリから複...
複製(クローン)したリポジトリ内には、複製元のリポジトリ...
-リモートリポジトリに手元の追跡ブランチを同期させる操作を...
-プル = フェッチ+マージ
-ローカルブランチの内容をリモートリポジトリに送りつける操...
リモートリポジトリを操作するには、
-ローカルリポジトリに存在するブランチ
-ローカルリポジトリ内の追跡ブランチ
-リモートリポジトリ内に存在するブランチ
を明確に区別して指定する必要がある。このための記法をrefsp...
参照仕様の理解もGitを使う上でのポイントの一つ(と思う)。
#img(,clear)
**おすすめドキュメント
ネット上、書籍共に数多くありますが…。
-Git入門:Git初学習者のための効率的な学習方法を考えてみた
--http://blog.takanabe.tokyo/2014/12/13/74/
--Gitの習得にあたっての方法論や、他の文書へのポインタなど...
-こわくないGit
--http://www.slideshare.net/kotas/git-15276118
--上述した「gitの各種操作においてコミットがどのように変化...
-The entire Pro Git book (日本語版)
--https://git-scm.com/book/ja/v2
--公式サイトの日本語版ドキュメント
**ツールとか
-[[GUIクライアント>https://git-scm.com/downloads/guis]]
これからリサーチ予定。[[SourceTree>https://ja.atlassian.c...
-リポジトリ管理
リモートリポジトリをウェブベースで管理するツール。GitHub....
リポジトリだけでなく、ユーザアカウント管理、イシュートラ...
--[[GitLab>https://about.gitlab.com]]
コミュニティ版、エンタープライズ版、SaaS版、ホスティング...
単一のリポジトリ内で、コード提出→レビュー→承認といったフ...
Ruby on Railsで記述されている。
--[[GitBucket>https://github.com/gitbucket]]
個人(竹添直樹氏)によるもの。Scala言語で記述されている。
「Github Enterpriseは高いしOSSではない、GitLabはインスト...
**開発フロー
作業用ブランチ(トピックブランチ)の作成やマージといった作...
例えば、
-A successful Git branching model (和訳)
http://keijinsonyaban.blogspot.jp/2010/10/successful-git-...
など。
**雑感
-VCSは時代を反映する
今回Gitを使うようになって感じたことの一つ
--RCS ... IPネットワーク以前。一台のマシンに全員がTSSでロ...
→一つのファイルはある時点では一人しかいじれない。
--CVS, svn ... IPネットワーク普及後。リポジトリはネットワ...
→ファイルを複数人で並行していじれようになった⌣。
--Git ... 大容量のストレージが個人レベルで入手可能に。ネ...
→リポジトリは全員が持てばいい。コミットも差分などは取らず...
>…どんどん富豪的に &bigsmile;
-&color(white,black){''黒い画面怖い''};
Gitについて色々調べている過程で時として目にしたフレーズ。
Gitは今ではメジャーなソフトなので、インフラ寄りはないエン...
概ね以下のような事柄が原因ではないか。
--GUIでカバーしていないニッチな機能を使う必要が生じた場合...
--SSHのようなGitを使う上で必要となる周辺技術があり、これ...
--VCSには他のソフトにはない独自の概念が多くあり、それらが...
-ほんこれ
ロブ・パイクは「Programming in C」の中で、以下のように述...
>Data dominates. If you've chosen the right data structur...
データがソフトウェアの主役である。データ構造を正しく選び...
>今回Git習得の過程でこのことを実感した。
Gitは優れてデータ構造主導のソフトウェアである。初期のGit...
----
#topicpath
End:
#setlinebreak(on)
#topicpath
*Gitの話
RIGHT:EBUG 第56回会合
2016年 2月27日、ながおか市民センター
川俣吉広、kaw@on.rim.or.jp
**VCSの特徴
歴代のVCS(Version Control System: バージョン管理システム)...
|名称|環境|管理単位|リポジトリ|h
|RCS |スタンドアロン|単一のファイル|単一のフ...
|CVS&br;Subversion|ネットワーク |ファイルツリー|ネット上...
|Git |~|~|複数のリポジトリがネット上に共存|
**リポジトリの内部構造
Gitではコミットする度にリポジトリ内部にひとまとまりのデー...
#ref(GitCommit.png)
-作成されるデータ構造の内訳
--コミットオブジェクト
一回のコミットそのものを表すデータオブジェクト。
---コミットオブジェクトを起点として、そのコミット時点の全...
---コミットオブジェクトにはその内容から算出されるSHA1のダ...
---コミットオブジェクトはその直前のコミットオブジェクトを...
--ツリーオブジェクト
コミットオブジェクト毎に、管理しているファイルの階層関係...
---ツリーオブジェクトはおおざっぱに言うとファイルの階層関...
OSが管理するファイルシステムそのものを記録しているわけで...
--BLOB (Binary Large OBject)
ファイルの内容を保持するオブジェクト。
---ファイルオブジェクトにもファイル内容のSHA1のダイジェス...
Gitでは、BLOBのオブジェクトIDが同じであれば、実ファイルシ...
-コミット
Gitでは、「コミット」という言葉は2つの意味を持つ。
一つは、リポジトリ内でコミットオブジェクトと、それが指し...
例えば「コミットを取り出す」とか「2つのコミットの差分を...
もう一つは、他のVCSでも用いられる「ファイルをリポジトリに...
この2つの違いを意識するとGitの理解が進む(と思う)。
-ブランチ
「ブランチ」という言葉も、他のVCSとは違う使われ方をする場...
#ref(Branches.png)
--「ブランチ」は「現在の最新のコミットを指し示すポインタ...
あるブランチに対しコミットが追加されると、そのブランチは...
--Gitのリポジトリを作成すると、「master」というブランチが...
--「HEAD」というブランチは、「現在作業対象となっているブ...
-コミットの操作
コミット操作(コミットの再試行、取り消し、変更)関連のコ...
--''git reset''
--''git checkout''
--''git commit --amend''
--''git revert''
--''git rebase''
--''git cherry-pick'' ...など...
>これらはそれぞれのコマンドを実行することによってコミット...
**分散リポジトリ
#ref(DVCS.png,around,right)
Gitでは複数のリポジトリを設置し、リポジトリ間でコミットを...
Gitの仕組み的には、全てのリポジトリは対等。
通常は、基点となるリポジトリを設け、そのリポジトリから複...
複製(クローン)したリポジトリ内には、複製元のリポジトリ...
-リモートリポジトリに手元の追跡ブランチを同期させる操作を...
-プル = フェッチ+マージ
-ローカルブランチの内容をリモートリポジトリに送りつける操...
リモートリポジトリを操作するには、
-ローカルリポジトリに存在するブランチ
-ローカルリポジトリ内の追跡ブランチ
-リモートリポジトリ内に存在するブランチ
を明確に区別して指定する必要がある。このための記法をrefsp...
参照仕様の理解もGitを使う上でのポイントの一つ(と思う)。
#img(,clear)
**おすすめドキュメント
ネット上、書籍共に数多くありますが…。
-Git入門:Git初学習者のための効率的な学習方法を考えてみた
--http://blog.takanabe.tokyo/2014/12/13/74/
--Gitの習得にあたっての方法論や、他の文書へのポインタなど...
-こわくないGit
--http://www.slideshare.net/kotas/git-15276118
--上述した「gitの各種操作においてコミットがどのように変化...
-The entire Pro Git book (日本語版)
--https://git-scm.com/book/ja/v2
--公式サイトの日本語版ドキュメント
**ツールとか
-[[GUIクライアント>https://git-scm.com/downloads/guis]]
これからリサーチ予定。[[SourceTree>https://ja.atlassian.c...
-リポジトリ管理
リモートリポジトリをウェブベースで管理するツール。GitHub....
リポジトリだけでなく、ユーザアカウント管理、イシュートラ...
--[[GitLab>https://about.gitlab.com]]
コミュニティ版、エンタープライズ版、SaaS版、ホスティング...
単一のリポジトリ内で、コード提出→レビュー→承認といったフ...
Ruby on Railsで記述されている。
--[[GitBucket>https://github.com/gitbucket]]
個人(竹添直樹氏)によるもの。Scala言語で記述されている。
「Github Enterpriseは高いしOSSではない、GitLabはインスト...
**開発フロー
作業用ブランチ(トピックブランチ)の作成やマージといった作...
例えば、
-A successful Git branching model (和訳)
http://keijinsonyaban.blogspot.jp/2010/10/successful-git-...
など。
**雑感
-VCSは時代を反映する
今回Gitを使うようになって感じたことの一つ
--RCS ... IPネットワーク以前。一台のマシンに全員がTSSでロ...
→一つのファイルはある時点では一人しかいじれない。
--CVS, svn ... IPネットワーク普及後。リポジトリはネットワ...
→ファイルを複数人で並行していじれようになった⌣。
--Git ... 大容量のストレージが個人レベルで入手可能に。ネ...
→リポジトリは全員が持てばいい。コミットも差分などは取らず...
>…どんどん富豪的に &bigsmile;
-&color(white,black){''黒い画面怖い''};
Gitについて色々調べている過程で時として目にしたフレーズ。
Gitは今ではメジャーなソフトなので、インフラ寄りはないエン...
概ね以下のような事柄が原因ではないか。
--GUIでカバーしていないニッチな機能を使う必要が生じた場合...
--SSHのようなGitを使う上で必要となる周辺技術があり、これ...
--VCSには他のソフトにはない独自の概念が多くあり、それらが...
-ほんこれ
ロブ・パイクは「Programming in C」の中で、以下のように述...
>Data dominates. If you've chosen the right data structur...
データがソフトウェアの主役である。データ構造を正しく選び...
>今回Git習得の過程でこのことを実感した。
Gitは優れてデータ構造主導のソフトウェアである。初期のGit...
----
#topicpath
Page: