情報デザイン演習II 1.オリエンテーション
目次
スライド
おまけ
Github
バージョン管理システム
バージョン管理システムとは
手作業ではバージョン管理が大変だよね、ということでバージョン管理システムというものが開発されます。
- SCSS(1972) テキストファイルのみに対応
- RCS(1982) バイナリファイルにも対応
- CVS(1990) サーバ上で管理
- SVN,Subversion(2000) ファイル名・ディレクトリ名の変更に対応
- Git, Mercurial(2005) より高機能に(サーバ上のリモートリポジトリ、PC上のローカルディレクトリ)
- 主流はGitに
個人的にはWebの仕事において、バージョン管理の必要に迫られていたため、Subversionあたりを試した記憶があります。でも、あまり使い勝手が良くなくて、結局手動での管理をしていました。
ですが、現場を離れてGitがさらに注目されているなぁ、と感じ始めました。至る所で使われている時代の流れを感じました。
また、このようなTweetが目につくようになりました。
最近では
最近よく聞くようになった「Git」。Gitはエンジニアだけではなく、WebデザイナーやWebライターなど、今やITに携わるほとんどの方の必須知識となりました。(【絶対理解できる】Gitとは?特徴やできることまとめ!)
となっています。
Gitはテキストファイル・バイナリファイル対応なため、文書全てを管理することが可能ということを意味しています。
というわけで、情報系学科?ですが、情報デザインとしては知っておいてほしいとの思いでシラバスに追加しています。
実際、IT業界で働く先輩に聞いても当たり前のように業務で利用しているとのことです。
Gitとは?
Gitで管理しているファイルであれば、コンピュータ上でファイルの編集履歴を管理できるので、古いバージョンから新しいバージョンまでの管理が簡単に行うことができます。
Gitでできること
- 古いバージョンに簡単に戻せる
- 新旧のファイルを一元管理できる
- 編集した履歴を複数人で共有できる
- 複数人で修正した部分を一つに統合できる
誰が使える?
テキストファイル・バイナリーファイル、なんでも扱えるため、
- プログラマー
- Webデザイナー
に限らず、あらゆる事務作業に利用できます。 (映像や解像度の高い写真にはそんなに向いてない)
Gitの構成
リポジトリ
ファイルやディレクトリを入れておくもので、二つに分かれます。
- リモートリポジトリ(特定のサーバ上にあり、複数人で共有することが可能)
- ローカルリポジトリ(自分のPC上にある)
普段の作業はローカルリポジトリで行い、共有するときにリモートリポジトリに作業内容を上げることができます。
コミット
ファイルの保存をもう少し大きくした感じで、「この作業が終わったよ」「ここ修正したよ」という宣言みたいなものです。
作業や修正は複数ファイルにわたることがあるため、
- ワークツリー:作業しているところ
- インデックス:コミットに関連するファイルを登録するところ
の二つがあります。
コミット前に対象ファイルをステージに上げる必要があります。
クローン
リモートリポジトリからローカルリポジトリに丸ごとダウンロードしてくる機能となります。
プル
リモートディレクトリとローカルリポジトリとの差の部分だけダウンロードして情報を最新にする機能です。
プッシュ
ローカルリポジトリにあるファイルをリモートリポジトリに上げる機能です。
ブランチ
複数人で作業していると、Aさんはこのファイルをいじってるけど、Bさんはこのファイルをいじっている、ということが起こり、混乱の元となります。
そのため、ブランチ、という考え方を使って分岐して作業をします。
マージ
ブランチで作業しているものがOKになると、主となるマスターブランチと統合する必要があります。これをマージと言います。
ブランチ・マージは次のような関係になります。
GitHubとは?
GitHubはWebサービスで、リモートリポジトリを管理するものです。 Web用のUIがあるため、便利に利用することができます。
他にも
- Bitbucket
- GitLab
等あるのですが、現状Github一人勝ちのようです。 Google Trend : Github, Bitbucket, Gitlab
そして2018年にはマイクロソフトが買収を行いました。
使ってみよう
OSのバージョン等によって差がありそうですが、やってみましょう。
Windowsの人は
に沿ってやってみましょう。
gitのインストール
- Command+スペースでterminalと入力して、terminal.app(ターミナル)を開く
- git –versionと入力して(マイナス二つ入力して下さい)リターンと押すと、コマンドラインツールをインストールするように促されるので(多分別ウィンドウ)、インストール
- 改めてgit –versionでバージョンが出ればインストール完了
gitの初期設定
自分が誰かを設定しておきましょう。
$ git config --global user.name "ユーザーネーム"
$ git config --global user.email eメールアドレス
とターミナルで入力しておきましょう。 $マークは入力しません。スペースに気をつけましょう。 ユーザーネーム、日本語やめておきましょう。例えばこんな感じです。
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
GitHubのアカウントを作成しよう
- GitHubにアクセス
- GitHubの登録の緑ボタンをクリック
- ユーザ名・メールアドレス・パスワードを入力して、人間であることを証明してくださいw。ユーザ名はドメインにも使われます。(sammypprのように)
- 「Welcome to GitHub」と表示されて何点か質問されますが、スルーしてもOKそうです。「Complete setup」をクリックしましょう。
- メールが届くので、「Verify email address」をクリックして終わりです。
GitHub上でリモートリポジトリを作成しよう
最近挙動が違うかもしれませんが…
- Create repositoryをクリック
- name your new repository… のところに ID2026
- Publicを選択
- Add a README fileにチェック
- Create repositoryをクリック
- Codeをクリックすると、リモートリポジトリのURLが表示されるので、URL右のボタンを押して、コピーしておきましょう。
VSCodeでクローンする
- VSCodeで新しいウィンドウ
- アイコンの上から3番目をクリック
- Clone Repositoryをクリック
- コピーしたURLをペーストしてClone from GitHubをクリック
- 許可を求めてくるので、許可(Allow)
- ブラウザでサインイン
- VSCodeを開くか聞かれたら開く
- OK
- もう一度Clone Repository
- ローカルリポジトリの場所を指定してクローン
- ホームフォルダの中に「github」というフォルダを新規作成して、そこを指定しましょう。
ローカルリポジトリにファイルを追加してプッシュまで
- アイコンの一番上をクリック
- test.txtとしてファイルを作り、なんでもいいので、中身を書いて保存しましょう。
- 上から3番目のアイコンをクリック
- Changesにtest.txtがあるはずです。ファイル名右の+を押すと、ステージされている変更(StagedChanges)に移ります。これ、説明したインデックスのところです。一時的においておきます。
- Messageに初めてのコミットとか書いてコミット(Commit)。次に同期(Sync Changes)とすると、プッシュされリモートリポジトリに変更が反映されます。
- ファイルに追記して、Sync Changesまでを2,3回やってみましょう。メッセージも適当に中身変えましょう。
コミットの確認
コミットの履歴を見るために拡張機能入れます。
- 拡張機能でGit Historyを検索してインストール
- test.txtがアクティブな状態でCtrl+Shift+Pでgit logと入力して、「Git: View History(git log)」を実行
- コミット履歴が表示されます。
- 古い方のコミットを押してからViewを押せば、その当時のファイルの内容を表示することができます。
バージョン管理どうですか???