第一回GitHub勉強会が開催されたけど、まず、言葉がわからなかった私。
デジタルを推進していくにあたって、「開発もオープン化しようぜ!」という流れで、GitHub勉強会が開催されました!!
技術顧問の田名辺さんから、GitHubとはそもそも何ぞや。
という、基本の「き」のお話がありました。
※このstream yardを使っての更新も、別途まとめたいなー。。。
初の多数カメラ収録&外部カメラ収録で失敗三昧でした(ぴえん)
repositoryを作って更新をしてみましょう!
コミットしましょう!
プッシュしましょう!
プルしましょう!
という言葉が飛び交い、その場で説明を受けながら触れば
「なるほど!」とわかることができましたが、
私は、配信の練習をしながらお話を聞いていたので、
途中から、「????」状態に。
そこで、お勉強会のこともそうですが、
今日のお勉強会で飛び交った用語について、
説明をするnoteに切り替えたいと思います!!!(違)
そもそも、GitHubってなんですの?
「GitHubとはGitを利用した開発者を支援するWEBサービスです」
・・・。(白目)
田名辺先生が仰るには
Git=ソースコードのバージョンを管理するツールの名前。
開発をする時って、一人でするわけではなくいろんな人が関わってソースコードが書かれていくと思うんです。
いつだれがどこを変えたのか、最新の物はどれなのか?などなど、ソースコード事態のバージョンを把握する必要がありますよね。
このバージョン管理をするツールの一つが「Git」だそうです。
で、GitHub。Gitを管理するためのサービスはGitHubだけじゃなく、いろんなものがあるそうなので、GitHubじゃなきゃGit管理できない!!!ということではないそうです!
ここまでくると、冒頭の「GitHubとは」が、すんなりと入ってくる気がしますよね。。。
で、ここから勉強会の中で頻繁に飛び交った単語を、自分なりの理解したよ!という証明に、文章にまとめてみました!!間違いなどもあるかと思いますが、「おー。がんばったねー」っと少しでも思っていただけたら、💛を教えていただけると、嬉しいです(´;ω;`)
それでは!まいります!!!
リポジトリとは?
リポジトリとは、要は大項目のような感じだと理解しました!
下の図をご覧ください!
リポジトリがあり、その下にフォルダがあり、さらに下のフォルダやファイルがありというような形で、続いていきます。
なので、、、、例えをするならば、こちらです!
くだものーかんきつ類ーみかん ―紅まどんな
-清見
-はるみ
-レモン ーリスボンレモン
-アレンユーレカレモン
-トゲなしレモン
-ゆず -多田錦
-海野系
-熱帯産果実ーキウイフルーツ ―香緑
-ゼスプリゴールド
-マンゴー ―アタウルフォ
-アルフォノソ
-仁果果実 -ニホンナシ(和梨)-二十世紀
-幸水
-豊水
-セイヨウナシ -バートレット
-ラ・フランス
-ル・レクチェ
-核果果実 -ウメ -南高梅
-古城
-鶯宿梅
-サクランボ -佐藤錦
-紅さやか
-高砂
-モモ -白鳳
-日川白鳳
-ちよまる
イメージわきますでしょうか?この場合、リポジトリにあたるのは、「くだもの」がその立ち位置なのかな?と。果物の中に、いろんな種類があって、さらにその下に細かい種類のものが入ってるんだよー!!という。。。(え?わかりずらくしてる???笑)
なので、システム開発などで言うなら、「コープさっぽろシステム更改」とか、「人事管理システム更改」とか、そういうのがリポジトリに当てはまるのかな???と思いました!
リポジトリは、二種類あってローカルとリモートがあるそうなのですが、、、。ローカルは、その言葉の通りPC上に作られるリポジトリ。
リモートリポジトリは、WEBサービス上に作られるものです!
ローカルでも、バージョン管理はできますが、「何のためのWEBサービスなんじゃーい!!!」という感じになってしまうので、リモートリポジトリに、自分のローカルリポジトリをアップロードして使う人が多いそうです。(そもそも、GitHubの場合、リモートリポジトリに作って編集もできますしね。。。。)
コミット
ズーチズーチ、ズーチズーチ、たたらーらーん!!!
の結果にコミットではなく!
GitHubでのコミットは、「リポジトリにファイルを保存する」という意味だそうです。もう一個、インデックスという保存方式もあるそうなのですが、今回の勉強会では、コミット!コミット!と田名辺さんはおっしゃってました。(そのたびに、例の曲が流れたのは私だけではないはず。)
コミットでは、変更点と一緒にファイルを保存することができるので、
「私がこれ変更したよー!」という、「私がこれを」と、「変更したファイルそのもの」を保存をすることができるそうです。
ただ、原則コミットは、ローカルリポジトリにファイルを保存する。
という意味だと認識していればOK!(田名辺さん)
ということでした!
================================
(8月3日 12:10追記)
さっそく、記事を見た優しい田名辺さんより
「コミット」について連絡が来ました・・・。
以下、転載です
「コミット」ですが、コミット=「ファイルを保存する」じゃないんです。
例えば、テキストを編集して保存するのは、単にエディタで保存しただけですが、その保存した「履歴を保存」するのが「コミット」と考えてください。履歴の保存なので、例えばファイルを削除したり移動したりした場合も「コミット」して履歴を保存します。
GitHubのサイト上でも直接ファイルを編集、保存できますが、それはGitHubのサーバー上で「ファイルを保存」したあとに、自動で「履歴を保存(コミット)」が走る、という解釈で良いかと思います。ちなみに、GitHub上でのこの操作は殆どやらないし、あまりおすすめしません。ローカルでコミット->プッシュの流れが基本です。
プッシュは、ローカルに蓄積されているコミットの全てを、リモート(GitHub.com)にアップすることをいいます。
プルは、逆にリモートのコミットの蓄積を、ローカルにダウンロードすることをいいます。
=================================
なんとーーー。。。
コミット全然理解できていなかった泣
ありがとうございますT^T
そのまま、追記させていただきます泣泣
プッシュ
一方で、リモートリポジトリにローカルリポジトリの修正内容を反映させることを、プッシュというそうです。
押して、リモート上にあげるぜ!!!っていうイメージからこの言葉なのでしょうかね???
なので、ローカルで更新したものをプッシュしながら、共同開発を行っていくというイメージですね。
私が、ここでごちゃっとしちゃったのが、googleドキュメントのようなWEBサービス上で、共同編集が可能なのかな??(ペアプログラミングのLiveShareのように…)って思ってしまった点で、プッシュってなんで必要で、且つコンフリクト(更新が同時にされた場合、先に更新された人の方だけが更新される、競合という現象)って起こるんだっけ?と思ってしまったのですが、、、、
GitHubではLive Shareのように同時編集だったり、、、見せ合ったり。というようなことはできず、ローカルもしくは、リモートで書く→コミットする→プッシュして共有リポジトリに保存!!ローカルもしくはリモートで書く→コミットする→プッシュして共有リポジトリに保存!という流れの様です!!
そこで、2人が同じタイミングで別な物を書いていて、
同時にプッシュすると、コンフリクトが起きて、
「うぉーーーーーーーい。こっちの反映されてないやないか」って
なるわけですね。
ふぅ。すっきりした。
非エンジニアで、教えてもらったことを、自分なりに理解しながら書いたのですが、認識が間違っていたら、、、ご指摘いただけるととても嬉しいです(´;ω;`)
プルとか、プルリクエストとかクローンとかそのほかにもいろいろあったのですが、、、今日はこの辺で・・・。
がんばれよーーーー!と、少しでも思っていただけましたら、
ぜひ、💛ボタンを押してやってください―T^T
見ていただきありがとうございます!!
おまけ
田名辺技術顧問から、、、。
追加で、GitHub勉強会を始めた経緯をSlackで教えていただきました!
コープさっぽろはDXを本気でやるのであれば、デジタル推進本部のメンバーは、ノンプログラマーで
もGit/GitHub使ってるよ、位な勢いで行ったらいいんじゃね?という個人的な思いがあります。
実際、講習でやった内容くらいであれば、十分できると思いますし、色々工夫のしようがあるかな?と
。というわけで、そもそもこの講習会をはじめたきっかけはソコ、ということも付け加えておきます!
なるほどーーーーー!!!!GitHubをノンプログラマーでも使う!!!!
ま、まずはテキストエディタとして使ってみる!というので、やってみようかな・・・・。