ナンバリングタイトルで習得した技を忘れるやつ

超普通の情報系大学生のメモや疑問まとめ、備忘録

Gitってなに?

バージョン管理システム。 ローカル環境(手元の今いじってるPCとか)でコードを書き換えてると、command+zの取り消しでは元に戻せない状況にいずれ出くわします。

そこで、バージョン管理のためにGitが使われるわけです。情報系の人間は遅かれ早かれGitと向かい合わなければなりません。(と思う) Gitに関する記事は本当に沢山あるので、最低限のメモのつもりで書きます。

用語 意味 コメント
リポジトリ 変更履歴の管理をする所。変更履歴の管理をしたいディレクトリ等をリポジトリの管理下に置くと、変更履歴を記録できるようになる。 しょっぱなGit関連やるならこれ作るところから
ローカルリポジトリ 自分のPCにあるリポジトリ 学校の課題とかを一人でやる分にはこれだけでいいと思う
リモートリポジトリ サーバーにあるリポジトリ サーバーにあるっていうと身構えるけど、大抵GitHub
ブランチ 履歴の分岐を並行して記録できるやつ。ここAって書いたけどBで書いたやつも並行して作業進めたい、って時とかに使う。 ブランチは「切る」もの
プル リモート→ローカルリポジトリへ変更反映 一人でやる時は使わない
プッシュ ローカル→リモートリポジトリへ変更反映 こっちは使う
コミット 変更内容をローカルリポジトリに登録すること。 git addしてから
マージ 異なるブランチの差分をどちらも反映すること。 基本勝手にやってくれる。リベースというのもある。
コンフリクト マージ対象の2ファイルで同じ箇所が変更されており、自動でマージができないこと。 手作業でマージすることになる
クローン よそのリモートリポジトリをコピーしてローカルリポジトリを作ること バイトとかで絶対使うやつ
プルリクエス 開発者のローカルリポジトリでの変更を他の開発者に通知する機能 いわゆる、プルリクってやつ

はい、これで「あのリポジトリ適当にブランチ切ってここ直してプルリク投げて」とか言われても多分平気ですね。 自分だけでバージョン管理するなら、リモートリポジトリはなくて大丈夫です。

以下、1-3がローカルでの大まかな手順です。リモートリポジトリを使う人は1の代わりにgit cloneして、2, 3, 4, 5と処理していきましょう。

  1. git init
    gitで管理したいディレクトリに移動してから、上のコマンドを叩きます。すると、リポジトリができます。 (ディレクトリ下に".git"というフォルダができていれば成功。隠しファイルなので、ls -aでチェックしよう)
  2. git add file_name
    これで、file_nameというファイルは変更履歴の追跡がされるようになります。"git add ."でまとめてファイルをaddできるよ。"git status"でnew fileにfile_nameが追加されていればオッケ〜
  3. git commit -m "comment"
    commentという内容のコメントとともに、変更をコミットします。この時、"git add ."していると全てのファイルに対するコミットメッセージがcommentになっちゃいます。 -mは、メッセージ入れるよって意味です。
  4. git push
    コミットした内容をリモートリポジトリに投げます。
  5. Github上でプルリクエス
    GitHub上の自分がpushしたリポジトリのページへ移動し、「Compare & pull request」をクリック、「 Create new pull request」をして終了です。

つらつら長くなってしまいましたね...とはいえ、オプション関係(-mとかそういうの)を極力省いたので、結構シンプルになったはず。
ぶっちゃけサルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログの通りにやればいいと思う。でも最初から最後まで読むとこれ長いんだよね。

ここまでコマンドライン上でいじる前提で書きましたが、GitHub Desktop | Simple collaboration from your desktopというものがあって、こちらだと差分がパッとチェックできますし、(コマンドど忘れしても何とかなるし)結構オススメです。私のバイトではこちらを主に使っています。

The world’s leading software development platform · GitHubは、色々作れるすごい人がみんなにコードを見せてくれたり保存させてくれたりするサービス。JavaScriptのライブラリとかよくここで公開されていますね。 リモートリポジトリが絡むのはこっちで、Gitと連携します。私もとりあえず今まで書いたやつあげてたりするよ。(誰も見てないだろうけど...) インターン等の選考でアカウント聞かれることがあるから持っておいて損はないよ。

間違えてcommitしてしまった時や、前の状態に戻したい時といったトラブルトラブル対処はまたいつか。

...プルリクエストって、プルをリクエストするみたいで何だかプルの意味的に変な感じがしません?しないか。

<まとめ>
git init→書き換える→git add→git commit→git push