ネットワークとサーバを専門にするとほとんど開発やgitの仕組みを理解できないままなので、基本的なところをコードの書ける後輩に教えていただきました。
qiitaの方がよっぽど参考になるからあまり見る人はいないよね、と仮定して自分用のメモだと思って随時追記していきます。でも誰かの参考になったら嬉しい。というかうちの学科はそもそも授業でgithub使わn
基本的なところ
gitとgithub
gitは手元(ローカル)で使うプログラム/ファイル管理ツール。gitで編集したものをgithub(web上のソース公開ツール)に上げることによりソースの共有ができる。バージョン管理の概念がまず最初にあって、大人数で開発をするときに各々が差分を適切に投げ、また最新の作業ファイルを投げたweb上から引っ張ってきてローカルで作業をする。これはどこでも言われているところだと思う。
gitの使い方
- 1: コードを書く。なんかつくる。
- 2: git add する。つくったものをステージングエリアに乗せる、という。ここでファイルはいわば下書きの状態で、まだ細かい編集はしやすい。
- 3: git commit する。いわば清書。
- 4: git push origin master する。web上のgithubリポジトリに作ったものを投げること。
で、そもそもgithub上に「リポジトリ」を作っていないとだめで、git init かweb上の操作で作る必要がある。リポジトリは1つのアプリケーションに必要な素材を入れていく作業部屋のようなもの。上記手順は投げるまでの基本動作。
- 0: リポジトリをつくる。
origin、master
originは「リモートリポジトリ」のことで、すなわち作ったものを投げる場所のこと。反対に、「ローカルリポジトリ」もあって、これは手元の作業環境、すなわちaddしたりcommitしたりする場所のこと。 masterは「master branch」のこと。github上にはbranchという概念があって、バグを直したりする際複数人で作業が同時にできるよう、一時的にmasterという「作ったものの大本」をコピーしてそこで作業するやり方がある。これを「ブランチを切る」とかいう。直したらmasterとマージする。
一人で作業する分には同時並行することはないのでbranchはあまり使われないらしい。
pull
pushの反対で、大人数で開発するとき使う。他の人も含めて作られた最新版のアプリケーションを編集するときは、作業開始時に自分の手元(ローカルリポジトリ)にある作業ファイルを更新しなければいけない。ここでリモートリポジトリからgit pullをして手元の作業環境を最新版にする。古いものとの差分は自動で更新してくれる。
言ってみれば上の手順0ともいえる大事な部分である。でも一人で作業する分にはあまり重要ではないのかな?
初期設定
とりあえずここに書いてあるコマンドを打ち込んでおいた。 git status とか見ながら自分のアカウントのリポジトリにpushまではできた。 作ったものをいっこいっこ上げるだけじゃなく複数のプログラムがひとつの「もの」を作り上げるようなイメージがあるんだけど、そこまではまだ達していない(2/18)。
実際に打つコマンド
git init git add . (git status) git commit -m "description" git push -u https://github.com/自分のユーザ名/リポジトリ名 master
つくってるもののディレクトリに入った状態でコマンドを入力する。git add . すると現在いるディレクトリの中のもの全てがステージングエリアに乗るが、ファイル指定も可能。git statusでaddしたもののリストを確認でき、間違えたらgit reset HEAD . すれば元に戻る。commit する際は-m で説明を入れておく。日付とかでいいのか。最後のところはgit push origin masterでもいいけど、おそらく複数のリポジトリを管理している場合は初回のみ一度どのリポジトリに入れるか指定したくなるので、こうなる。pushする際はgithubアカウント名とパスワードの入力を促されるので入力する。
やって覚えた必要事項
- 昔cloneしたコードをもう一回読みたくて掘り出したら、「おれがもらってきたこのコード、元々誰が書いてくれたんだっけ」ってなった。解決するには「git remote -v」。つまりgitリポジトリのoriginのURLを確認できる。(5/8)