gitでバージョン管理
チーム開発において必須となる「Git」
Gitの運用方法についてまとめ
gitの基本コマンド
Gitは、Macならターミナル、WindowsならコマンドプロンプトやPowerShellを使って操作
個人開発でも、過去のバージョンに戻ることができて便利
当ブログの運用を含めて、アウトプットは全てGitを使って行うようにしてる
現場によっては、違うシステムでバージョン管理している場合もある
e.g. svnなど
1.リモートリポジトリからCloneする
最初に、cdコマンドでリポジトリを作成したいディレクトリに移動
cloneコマンドでリモートリポジトリのURLを指定する
すでにリポジトリ内に存在するファイルが、ローカルの作業ディレクトリ(ワークツリー)にコピーされる
2.ローカルリポジトリの作成
initコマンドを実行すると「.git」というローカルリポジトリをディレクトリに作成される例えば、testディレクトリでgit initを実行すると、下記のようになる
「.git」のフォルダが生成され、ステージングエリアとローカルリポジトリという作業領域が準備される
対象ディレクトリをGitの管理下に置くことができた
3.ファイルをステージングエリア(インデックス)に登録
ステージングエリアとは、commitしたい変更ファイルを置いておく場所
git add .
とするとディレクトリ内の全ファイルを一度に登録できる
4.ファイルの変更をローカルリポジトリに登録
commitは、ファイルをローカルリポジトリに記録するコマンドです。-m
を忘れるとデフォルトのエディターとしてViエディターが立ち上がる
一単語なら-m
がなくても登録できる
コミットメッセージ入力後に :wq
で保存・終了
5.リモートリポジトリにpushする
最初は、「.Gitファイル」をリモートリポジトリに関連付けする
2回目以降は上記の簡略化したコマンドで、GitHub上にあるリモートリポジトリにcommit
としたファイルをpush
(アップロード)できる
ちなみに「origin」とは「リモートリポジトリ」のエイリアスを指す
pushコマンドで、GitHubのリモートリポジトリに変更ファイルをアップロードできる
Gitの確認コマンド
次に、各コマンドに対する実行結果を確認する
1.Gitの現在の状況を確認
Gitの様々な状況をまとめて確認できる
On branch main
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)
2.commitの状況を確認
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行ずつのスッキリとした表示にできる
3.ファイルの差分を確認
diffは、ブランチをマージする前にファイルの差分を確認するためのコマンド
オプションを指定する事で様々な状態の差分を確認することができる
4.リモートリポジトリURLを確認
正常に登録されていれば、リモートリポジトリのURLを返す
Gitの削除コマンド
git rm でローカルリポジトリのファイルを削除できる
ブランチの運用
ブランチとは、ひとつのファイルをブランチ(枝)で分岐させて作業するための機能
チーム開発において、複数人が同時並行でファイルを変更する際に役立つ
以前まで「git checkout」が使われてたが、「git switch」のほうが直感的でわかりやすい
1.ブランチの作成
初期状態は、ブランチが「main」となっているGitは、基本的に「mainが一番正しく、最新のものである」という状態で運用
2.ブランチの移動
switchは、ブランチを切り替えるコマンド
現在のブランチを確認することができる
「 * 」がついているのが現在のブランチ
ブランチで作成・変更したファイルを全てcommitを完了してから、mainにマージする
mainに対して、マージしたいブレンチ名をコマンドで入力する
マージの衝突(CONFLICT)が起きなければ、マージ完了
mainが最新のものになっているか確認
リモートリポジトリの最新の状態を取得する
取得したリモートリポジトリをローカルリポジトリとマージする