More Related Content
新人Git/Github研修公開用スライド(その2) Git & GitHub を使いこなしてハッピーになろう! - WordBench 名古屋 & concrete5 名古屋 合同勉強会 What's hot (20)
医療データ解析者へ向けた Git・GitHub 入門 新人Git/Github研修公開用スライド(その1) Archive: Git 入門(2014/1/10 社内勉強会) 最近のTUI(Terminal-based User Interface)事情 わしわし的おすすめ .gitconfig 設定 (と見せかけて実はみんなのおすすめ .gitconfig 設定を教えてもらう魂胆) #広島Git 勉強会 Similar to Git講習会 (20)
Python for Data Analysis第1回勉強会(+git入門) Git勉強会 2016 Gitで卒論を管理しよう回 More from galluda (9)
Webデザイナーのためのphp wordpress Git講習会
- 12. 質問
「Aさんが修正した」修正→
どこに消えた???
現在のサーバのソース↓
これがデグレードです
絶対厳禁!!
//大本の記述1
大本の記述1-A
ソースコード管理サーバ:とあるファイル
大本の記述1
//大本の記述2
大本の記述2-B
大本の記述3
- 14. バージョン管理システムの簡単な歴史
SCCS(Source Code Control System)
世界初のバージョン管理システム。1972年に出来た。
RCS(Revision Control System)
1982年に作られたバージョン管理システム。ファイル単位で管理を
行い、軽い。
CVS(Concurrent Versions System)
1990年に作られた。当初はRCSをベースにしていたらしい。(RCS
やSCCSと異なり)「ネットワーク越し」に使えるシステムだったので、
一時期、割とよく使われていた。
SVN(Subversion / Apache Subversion)
2000年に作られた。のちに(2009年)にApacheプロジェクトに入った
ので、名前の頭にApacheがつくようになる。
CVSでいくつかある難点を補うために作られた。会社等によっては
今でも現役。
- 15. VSS(Visual SourceSafe / Microsoft Visual
SourceSafe)
2005年作成。Microsoft Visual Studioによるアプリケーション
開発において使用することに主眼をおいたバージョン管理シ
ステム。
現在はサポートが終了しており、TFS(Team Foundation
Server)が後続になっている
Mercurial
2005年作成。Gitと一時期、覇を競っていた時期がある。現状
でもGitとMercurialは「互いの機能を取り入れつつ開発が進
んでいる」。ただし、Gitよりはマイナー。
- 22. GitHubを使う事によって
多人数でも開発が出来る
GitHubの場合「ほかの人にソースを見てもらう事ができる/提
供できる」
なお、単純に「Gitのみ」で開発をしたり(それでも「多人数
で開発が出来る」というメリットは享受できる)、GitHubと
似たような機能を持つOSS(GitLabなど)もあるので、興
味があったら色々と調べてみましょう!!
- 23. OSSについて少し
Open-source software / オープンソースソフトウェア
ソフトウェアを、学習、変更、そして配布するための権利
を提供するというライセンスに基づいたソフトウェア
端的には、Linuxがそうで、Gitがそうで、様々なOSSを
我々は使っている
GitHubを使うと「ソフトウェアを配布する」ための環境が、
(ライセンスによっては)無料で手に入る
- 38. https://GitHub.com/
[Sign up]をclick
Username、Email Address、Passwordを入力:Usenameは
重複不可。なので「すでに使われている」アカウントの場合、
「Username is already taken」と出る
[Create an account]をclick
Choose your plan
[Unlimited public repositories for free.]を選択(有料でも止
めはしないけど、"後で変更"出来るので、一端は無料でよい
でしょう)
[Continue]をClick
- 39. アンケートへの入力はお好みで。
下に[skip this step]があるので、skipしてもよし。
登録したメールアドレスを確認する。
Gitからmailが来ているはずなので、メールの中にあるリ
ンク(Verify email address)をclickして、メールアドレスの
認証を終了させる。
[Start a project]のボタンを押すとレポジトリの作成画面
になる。
一端作成せず、ここまでで「GitHubのアカウント登録」の
完了。
- 42. 準備
レポジトリ用のディレクトリの準備
コマンドプロンプト(cmd.exe)を立ち上げます
cd C:
mkdir git_work
cd git_work
(エクスプローラでやってもよいですが、後でコマンドプロンプト
は使います)
もし「サブディレクトリまたはファイル git_work は既に存在し
ます。」というエラーが出た場合は
rmdir /S git_work
で削除してから上述を実行してください。
エクスプローラでも同じディレクトリ(C:git_work)を開い
ておいてください
エクスプローラ設定「隠しファイルの表示」「拡張子の表示」
- 43. 「新しいレポジトリ」を作成、ファイルを1つ
コマンドプロンプトで以下を打ち込みます
git init
[エクスプローラでテキストファイルを作成: README.txt]
[README.txtを修正] test1
git add README.txt
git config --local user.name "自分の名前"
localの前のハイフンは「二つ」なので注意
お仕事等だと「 --global」が多いが、今回は共有PCなので、localで
スペースが必要なので注意!!
git config --local user.email "自分のメールアドレス"
git commit -a -m "first commit"
- 44. git init
「新しいレポジトリ」を作成します
git add
指定したファイルを「gitの管理対象」にします
git config
色々な設定をします。今回は「自分の名前」と「連絡先」を登録
しました(後で出てきます)
git commit
変更をgitに登録します
- 46. git log
gitの変更履歴を表示します。様々なオプションがあります
前Pageで出てきたオプションは、全部「ハイフン2つ」です
- 48. git diff
「最後にcommitした」後、どこに変更があったかを教えてくれ
ます
実際にはそれ以外にも「色々な"2点"の比較」が出来ます
- 55. git remote add origin https://github.com/XX/test.git
git push -u origin master
ブラウザをリロードして「GitHubにソースコードが上がっ
ている事」の確認
- 56. git remote add origin https://github.com/XX/test.git
「origin」という名前に「 https://github.com/XX/test.git 」のリ
モートレポジトリを紐づける、という意味合い(下で使う)
git push -u origin master
"git push [リモートリポジトリ] [ローカルのブランチ名]:[リ
モートのブランチ名]"が、正式
git push https://github.com/XX/test.git master:master
git push origin master:master
git push origin master
-uは「一端、あまり気にしない」
- 60. cd C:
mkdir git_work2
cd git_work2
git clone https://github.com/[アカウント名]/test.git
コンソールから「cd test」
または
エクスプローラで「C:git_work2test」
で、ファイルの存在を確認する
git config --local user.name "自分の名前(別名で)"
git config --local user.email "自分のメールアドレス(連
絡先)"
- 63. git pull
"git pull [リモートリポジトリ] [リモートのブランチ名]"が、正
式
git pull https://github.com/XX/test.git master
git pull origin master
git pull
- 69. # 作業用ブランチを切って移動する
# git branch ブランチ名
# git checkout ブランチ名
git checkout -b ブランチ名
# 移動できたことを確認
git branch
# 修正等作業:作業完了してmergeできるところまでもっ
てこれた
git commit -a
- 70. ブランチ:「リモートにアップしてpull
request等をする」流れの場合
# リモートにアップする
git push origin ブランチ名
# レビュー等をしてもらう
(mergeはおそらく「レビューをしてくれた人」がしてくれる)
# merge後、リモートのブランチを削除する(ブランチ名の前
に:を付けると「削除」の意味)(削除してくれている、かも)
git push origin :ブランチ名
# localのブランチを削除する
git branch -d ブランチ名
git branch
終了
- 72. # local masterの内容をリモートに反映する
git push origin master
# localのブランチを削除する
git branch -d ブランチ名
git branch
終了
- 74. 新しい機能の開発や修正、緊急のバグフィックス対応
masterから新しいブランチを作成する
git checkout -b ブランチ名
新しいブランチ上で追加や修正の作業を行う
リモートのブランチに、定期的にpushをしておく事が推奨されている
Pull Request、merge を行う
Pull Request → masterへmerge
masterに入ったものは、いつdeployされてもよい、とみなす
定期的、或いは即時、といったdeployタイミングが多いと思います
- 75. 付録:様々な開発方法の一例/ Git flow
使用するブランチ
master:リリースするためのブランチ。リリース後、タグを切る
develop: 開発ブランチ。開発する時の元ネタ
featuresブランチ群: 実際に作業をしているブランチ群
hotfixesブランチ群:リリース後の「クリティカルなバグ」などに
対応するためのブランチ群
releases ブランチ群: リリースの準備用のブランチ群
下準備
masterブランチを用意します
masterブランチからdevelopブランチを作成します
- 77. リリース(deploy)準備
developブランチからreleaseブランチを作成
"release/リリース名"という命名が多いです
必要であれば、 releaseブランチに修正を加えます
リリースの準備が完了したら、以下の作業を行います
releaseブランチをmasterにmergeして、pushします
masterブランチにリリース用のタグをつけます(こちらもpush)
releaseブランチの内容をdevelopブランチにmergeして、pushしま
す
releaseブランチを削除します
masterブランチの内容をリリース(deploy)します
- 78. 緊急のバグフィックス対応
masterブランチからhotfixeブランチを作成
"hotfixe/ホットフィックス名"という命名が多いです
修正が終わったら、以下の作業をします
hotfixeブランチをmasterにmergeします
masterブランチに「緊急対応した」旨のタグをつけます
hotfixeブランチをdevelopにmergeします
hotfixeブランチを削除します
masterブランチの内容をリリース(deploy)します