チーム開発において必須となる「Git」。
当記事では、Gitの運用方法についてまとめます。
基本コマンド
個人開発の場合でも、過去のバージョンに戻ることができて便利なGit
。現場では使いこなせないと話にならないという事で、プログラミング学習においてのアウトプットには、すべてGit
を使って行うようにしています。
Git
は、Macならターミナルを使用して操作します。
Git
によるバージョン管理に使用するコマンドについて解説します。
git clone
clone
は、GitHubにあるリポジトリからローカルのPCにコピーを作成するコマンドです。
$ cd ディレクトリパス
$ git clone URL
最初に、cd
でリポジトリを作成したいディレクトリに移動します。
clone
でリモートリポジトリのURLを指定します。
GitHubのリポジトリ内にあるファイルが作業ディレクトリ(ワークツリー)にコピーされます。
git init
init
はローカルリポジトリの初期化コマンドです。
$ git init
init
を実行すると「.git」というローカルリポジトリをディレクトリに作成します。
例えば、testディレクトリで実行すると、下記のようになります。
~/D/test ❯❯❯ git init
Initialized empty Git repository in /Users/tetsu/Desktop/test/.git/
「.git」のディレクリが生成され、ステージングエリアとローカルリポジトリという作業領域が準備されます。
対象ディレクトリをGit
の管理下に置くことができます。
git add
add
は、指定したファイルをステージングエリア(インデックス)に登録するコマンドです。
$ git add ファイル名
ステージングエリアとは、commit
したい変更ファイルを置いておく場所です。
git add .
のオプションで、ディレクトリ内の全ファイルを一度にステージングエリアに登録できます。
git commit
commit
ファイルの変更をローカルリポジトリに登録するコマンドです。
$ git commit --m "変更点、変更理由の記述"
commitは、ファイルをローカルリポジトリに記録するコマンドです。
※ --m を忘れるとデフォルトのエディターとしてVimが立ち上がります。
コミットメッセージ入力後に :wq で保存・終了します。
push
push
は、リモートリポジトリにcommit
したファイルを反映されるコマンドです。
$ git remote add origin https://github.com/ユーザー名/リモートリポジトリ名.git
一番最初は、「.Gitファイル」をリモートリポジトリに関連付けします。
2回目以降は、GitHub上にあるリモートリポジトリにcommit
としたファイルをアップロードできます。
$ git push origin master
ちなみにorigin
は、「リモートリポジトリのエイリアス」を指します。
確認コマンド
次に、各コマンドに対する実行結果を確認する方法をみてみましょう。
status
status
は、Gitの現在の状況を確認するコマンドです。
$ git status
Git
の様々な状況をまとめて確認することができます。
On branch master
No commits yet
Untracked files:
(use "git add ..." to include in what will be committed)
test.html
nothing added to commit but untracked files present (use "git add" to track)
log
log
は、commit
の状況を確認できるコマンドです。
$ git log
現在のcommit履歴を詳しく表示させることが出来ます。
commit c08d7124cda5f512c7af2a3c67252f910b439bf5 (HEAD -> master)
Author: ユーザ名 <xxxxx@gmail.com>
Date: Sun Dec 29 10:45:34 2019 +0900
create test.html
commit
の回数が増えて見にくいときは、
$ git log --oneline
とすることで1行ずつのスッキリとした表示にできます。
~/D/test ❯❯❯ git log --oneline
c08d712 (HEAD -> master) create test.html
diff
diff
は、ファイルの差分を確認するコマンドです。
$ git diff
ブランチをマージする前にファイルの差分を確認するたことができます。
オプションを指定する事で様々な状態の差分を確認することが可能です。
remote
remote
は、リモートリポジトリURLを確認するコマンドです。
$ git remote -v
正常に登録されていれば、リモートリポジトリのURLを返します。
削除コマンド
Gitファイルを削除する際のコマンドを解説します。
rm
rm
は、ファイルを削除するコマンドです。
$ git rm ファイル名
ローカルリポジトリのファイルを削除できます。
ブランチの運用
ブランチとは、ひとつのファイルをブランチ(枝)で分岐させて作業するための機能です。
チーム開発において、複数人が同時並行でファイルを変更する際に役立ちます。
ブランチの作成
$ git branch ブランチ名
初期状態は、ブランチが「master」となっています。
Gitは、基本的に「masterが一番正しく、最新のものである」という状態で運用します。
ブランチの移動
$ git checkout ブランチ名
checkoutは、ブランチを切り替えるコマンドです。
$ git branch
現在のブランチを確認することができます。
~/D/test ❯❯❯ git branch
* master
「 * 」がついているのが現在のブランチです。
ブランチで作成・変更したファイルを全てcommitを完了してから、masterにマージします。
git checkout master
masterに対して、マージしたいブレンチ名をコマンドで打ちます。
git merge [ブランチ名]
マージの衝突(CONFLICT)が起きなければ、マージ完了です。masterが最新のものになっているか確認してください。
もしコンフリクトエラーになってしまった場合は、こちらのサイトが参考になりましたのでご参照ください。