いつかGitを使って開発行うこともあるかもしれないと思い、
とりあえず基本的な部分をメモとして残すことに。
Gitとは?
分散型バージョン管理システムのこと。
ちなみにGitHubは、Gitを使ったソフトウェア開発PJのための共有ウェブサービスのこと。
GitとSubversionの違い
- Git
- 同じ情報を持つリポジトリを、開発者ごとに持つことができる(分散型)
- ローカルで
- 間違ってコミットしてしまったソース等が、いきなりメンバーに共有されて影響を与える心配がない。
- SVNと比べて操作がやや難しい部分がある。
- 同じ情報を持つリポジトリを、開発者ごとに持つことができる(分散型)
- SVN
- 開発者全員が共有するリポジトリに対して修正内容を反映(集中型)
- 操作が簡単なので、初心者でも扱いやすい。
- 他の人との競合や、間違って不完全なソースコードを共有してしまう危険がある。
Gitでよく使う用語
用語 | 内容 |
---|---|
リポジトリ (repository) |
ソースコードや修正履歴、コメント等を保存している場所。 |
リモートリポジトリ (remote repository) |
サーバに保存されていて、複数人で共有するためのリポジトリ。 |
ローカルリポジトリ (local repository) |
ローカルに保存されているリポジトリ。 |
クローン (clone) |
リモートリポジトリのファイルや変更履歴を丸ごと複製(ダウンロード)すること。 |
ブランチ (branch) |
一連の修正を、いくつかに分岐させて管理するもの。 ブランチでの修正内容は他のブランチの影響を受けないため、同じリポジトリで同時に複数の変更を行うことができる。 |
チェックアウト (checkout) |
他のブランチへ移動し、作業ディレクトリを任意のコミット状態にすること。 |
コミット (commit) |
修正内容をローカルリポジトリに反映すること。 |
プッシュ (push) |
ローカルリポジトリの修正内容をリモートリポジトリに反映すること。 |
プル (pull) |
リモートリポジトリの修正内容をローカルリポジトリに反映すること。 ※ローカルリポジトリとの差分のみをダウンロードして更新する。 |
マージ (merge) |
異なるブランチの修正内容を反映すること。 マージ先とマージ元の両方に変更履歴が残る。 |
コンフリクト (conflict) |
マージの際に、リモートとローカルで同じファイルの同じ箇所に対して修正がされており、自動でマージできないこと。 両方の修正を合わせた内容に手動で編集する必要がある。 |
Gitを使う準備
新しいリポジトリを作成するコマンド
test $ git init
共有するファイルの選択
共有したいファイルを作成する(ex:index.html)
test $ git add index.html(共有したいファイル名)
変更したファイルを把握する
下記コマンドによって、自分がどのファイルを変更したか確認できる。
test $ git status
On branch masterChanges not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: index.html
modified: stylesheet.css
no changes added to commit (use "git add" and/or "git commit -a")
変更した内容を把握する
コードを変更した部分は、
変更前のコード:赤色で表示される。
変更後のコード:緑色で表示される。
内容に問題がなければ、git addを実行する
addしたファイルを確認する
どのファイルをaddして、どのファイルをaddしていないかを確認ができるのは、
先ほども使用したコマンド「git status」を実行することで確認できる。
addされたファイル :緑色の文字で表示される。
addされていないファイル:赤色の文字で表示される。
ファイルの記録
いわゆる コミット のこと
test $ git commit -m "Create index.html"
コミットメッセージは分かりやすく書く
コミットする際に、メッセージを適当にするとどんな修正を行ったのか分かりずらくなる。
なるべく具体的に、簡潔に書くように気を付ける。
共有の仕組み
Gitでは「リモート」という共有ファイルの置き場を使用する。
リモートファイルにアップロードしたり、
リモートからファイルをダウンロードすることで、
開発者同士がファイルを共有することができる。
リモートの準備
リモートにアップロードするためには、そのリモートのURLを登録する必要がある。
リモートを登録する際には名前を付ける必要があり、基本的に「origin」とすることが多いらしい。
test $ git remote add リモート名 リモートのURL
リモートの名前を変更する
リモートの名前を変更したい場合は下記コマンドを実行すると、変更できる。
git remote rename 古いリモート名 新しいリモート名
リモートにファイルをアップロードする
アップロードすることを、プッシュという。
test $ git push origin master
origin の部分は、git remote addを実行する際に使用したリモート名
リモートのファイルをダウンロードする
ダウンロードすることを、プルという。
test $ git pull origin master
コミットログの確認
コミットメッセージのみ確認するコマンド
git log
変更内容も確認するコマンド
git log -p
表示内容が多い時は特殊な表示モードになる。
上下キーを使うと表示範囲を変えることができて、Qキーを押すと終了する。