==================== Git入門 ==================== Gitとは ============================ Git(ギット)とは、ソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムです。 変更履歴の管理以外にも複数人で作業する時などに強みを発揮します。 Gitのインストール ============================ 詳細は `Gitのインストール `_ を参考にインストールしてください。 Windowsの場合 -------------------- | `Git for Windows `_ よりexeファイルをダウンロードして実行してください。 | インストールが完了するとgit bashがインストールされるはずです。 | この後の説明で、gitコマンドを使うときはgit bashから行うようにしてください。 Macの場合 -------------------- | `SourceForge git-osx-installer `_ よりインストーラーをダウンロードし実行してください。 | この後の説明で、gitコマンドを使うときはターミナルから行うようにしてください。 ユーザー登録 ------------------- | Gitでは誰が作業したかを記録するために、ユーザー名とメールアドレスを利用します。 | ユーザー名とメールアドレスを設定しましょう。 .. code-block:: bat git config --global user.name {usersname} git config --global user.email {mail@example.com} | 上記のコマンドをusersnameを自分のユーザー名に、mail@example.comをメールアドレスに書き換えて実行してください。 リポジトリの作成とコミット ============================== | リポジトリは履歴を管理する場所です。 | ローカルリポジトリとリモートリポジトリの2種類が存在します。 | リモートリポジトリは専用のサーバーに設置されており、複数人で作業するときに共通する場所のことです。 | ローカルリポジトリは普段、作業するときに使う場所で、作業するときの手元のPC上に存在します。 | Gitを利用するためには必ずリポジトリを作成する必要があります。 リポジトリの作成 --------------------- | リポジトリは新規のリポジトリを作成するか、他のリポジトリをコピーすることで作成することが出来ます。 | コピーする方法はリモートリポジトリの項目で扱います。 | .. code-block:: bat cd [GIT管理したいディレクトリ] git init . | 上記のようにGitで管理したいディレクトリに移動し、「git init .」を実行するとローカルリポジトリが作成されます。 コミット ------------------- | コミットとは変更履歴を記録することです。 | 意味のある変更を行った場合は可能な限り最小単位でコミットすることをオススメします。 | | コミットするためには、まずはコミットに含まれるファイルを「git add」で指定します。 | 次にgit commit でコミットします。コミットするときには、変更内容をコミットメッセージに必ずメモする必要があります。 .. code-block:: bat git add [追加したいファイル] git commit -m "変更内容をメモ" | 書式は上記のようになります。 | 現在居るディレクトリ以下、全てのファイルでの変更を反映する場合は .. code-block:: bat git add . git commit -m "新しいクラスを追加しました" | このようになります。 | | 「git add」とは逆にGitの管理対象から外したい場合は .. code-block:: bat git rm [除きたいファイル] | このようにします。 ブランチ ============================= | ブランチとは分岐してバージョン管理を行う方法です。 | 複数人で作業を行う時などに利用します。 | 分岐したブランチは元のブランチの影響を受けないので、 | 同時に並行して作業をすることが可能になります。 | また、作業単位でブランチを分岐させることで、変更箇所を把握しやすくすることもできます。 | | 初期状態ではmasterという名前のブランチに居ることになっています。 | ブランチを切り替える ---------------------------- ブランチを切り替える場合は .. code-block:: bat git checkout [ブランチ名] | のようにします。 | 例えばmastaerブランチに切り替える場合は .. code-block:: bat git checkout master | です。 ブランチを分岐して作成する ------------------------------------- ブランチを作成するには .. code-block:: bat git branch [作成するブランチ名] | このように作成しますが、 | 実際には「ブランチを作成し、そのブランチに切り替える」ことが多いので .. code-block:: bat git checkout -b [ブランチ名] | このようにすることの方が一般的です。 | checkout に -b を指定すると、新規作成したブランチに切り替えることができます。 | | ブランチ一覧を見るには .. code-block:: bat git branch とすれば可能です。 マージ =============================== | マージとは分岐したブランチを再び統合するときに利用します。 | 複数のブランチでのコミットを反映することができるため | 複数人で同時にそれぞれが作業した内容を統合することができます。 | | ブランチをマージするには .. code-block:: bat git merge [吸収するブランチ名] | このようにします。 | | 例えばmasterブランチにdevelopブランチをマージしたい場合は .. code-block:: bat git checkout master | masterブランチに移動した後 .. code-block:: bat git merge develop | とします。 リモートリポジトリ ============================== リモートリポジトリとは専用のサーバーに設置されているgitリポジトリのことです。 複数人で作業するとき使います。 clone ------------------- | cloneはリモートリポジトリの内容をそのままローカルリポジトリに持ってくることです。 | 過去のコミットやブランチなどもそのままクローンされます。 .. code-block:: bat git clone [リモートリポジトリのurl] | git cloneを利用してリポジトリを作成する場合は、git initで初期化する必要性はありません。 push ------------------- | pushはローカルリポジトリでの変更内容をリモートリポジトリに反映させるときに利用します。 .. code-block:: bat git push origin [元のローカルリポジトリのブランチ名]:[反映先のリモートリポジトリのブランチ名] | ただしローカルリポジトリとリモートリポジトリのブランチ名が同一の場合は .. code-block:: bat git push origin [ブランチ名] | と省略することができます。 pull -------------------- | pullはリモートリポジトリでの変更内容をローカルリポジトリに反映させるときに使います。 .. code-block:: bat git push origin [リモートリポジトリのブランチ名] | このようにすると、リモートリポジトリのブランチ名と同名のブランチがローカルリポジトリに作成され、リモートリポジトリの内容がコピーされます。