概要
社内でGitについての勉強会がありましたので、その時学習した内容と自分で調査した内容を纏めて、アウトプットしてみました。
記事としては、Gitの基礎的な内容となっています。
Gitとは?
ソースコードや変更履歴を管理するために使用される、代表的な分散型バージョン管理システムです。
Gitによってファイルのバージョンを管理することができるため、他の作業者にソースコードを上書きされても、簡単に元の状態に戻すことができます。
Gitを使用するメリット
- 古いバージョンから新しいバージョンのファイルまで管理することができる
- 簡単に古いバージョンに戻すことができる
- チームでファイルや変更履歴をスムーズに共有することができる
Gitインストール方法
Linux
バイナリのインストーラを使用し、Linux上にGitと主な関連ツールをインストールする場合、大抵はディストリビューションに付属する基本的なパッケージ・マネジメント・ツールを使用。
sudo yum install git-all
UbuntuのようなDebianベースのディストリビューションを使用している場合、apt-getでインストールする。
sudo apt-get install git-all
Mac
GitのWebサイトからインストーラをダウンロードします。
上記の手順の代替として、Homebrewを使用してGitをインストールする方法もあります。
以下のサイトを参考にして下さい。
Windows
macと同様にGitのWebサイトからインストーラをダウンロードします。
Configuring git
Gitの設定(ユーザ名やメールアドレス等)をgit config
で確認・変更します。
Gitの設定ファイルは3種類あります。
種類 | 対象範囲 | 場所 |
---|---|---|
system | システム全体(全ユーザの全リポジトリ) | /etc/gitconfig |
global | 該当ユーザの全リポジトリ | ~/.gitconfig |
local | 該当リポジトリ | repository/.git/config |
system、global、localの順番で読み込まれます。
$ git config --global user.name "ユーザ名"
$ git config --global user.email "メールアドレス"
$ gti config -l
##有効になっている設定項目と設定値が全て表示される。
git config -e
で設定ファイルをエディタで直接編集することもできます。
Git Clone
指定したリポジトリをカレントディレクトリ(ローカル環境)に複製することができます。
$ git clone リポジトリパス
オプション
オプション | 説明 |
---|---|
--branch(-b) | クローンしたいブランチを指定 |
--quiet(-q) | クローン時のメッセージを非表示 |
--origin(-o) | originに別名をつける |
--depth | 指定数のコミットのみを取得 |
--no-checkout | チェックアウトを行わない |
Git Branch
Gitに新しいブランチを作成します。
#新規ブランチの作成とブランチの切り替え
$ git checkout -b ブランチ名
#ブランチの削除
$ git branch -d ブランチ名
#利用できるブランチと現在のブランチの確認
$ git branch
add関連
変更したファイルをステージングエリアにステージ(add)する。
#すべての変更したファイル
$ git add .
#ファイル単位でadd
$ git add ファイル名
#ディレクトリ単位でadd
$ git add ディレクトリ名
ステージングエリアにaddした変更点をアンステージします。
#すべてのステージをキャンセルする
$ git restore --staged .
#ファイル単位でキャンセルする
$ git restore --staged ファイル名
#ディレクトリ単位でキャンセルする
$ git restore --staged ディレクトリ名
commit関連
ステージした変更点をFeatureブランチにコミットします。
git commit -m "コミットメッセージ"
git push origin ブランチ名
直前のコミットを取り消します。
#コミットした内容をステージングエリアに戻す
$ git reset --soft commit-hash
#すべて無かったことにする(コミット前の状態に戻す)
$ git reset --hard commit-hash
Rebase/Merge関連
リベース
リベースには、「指定したコミットをブランチに変えて作り直したり、一つにまとめたりして、ログをきれいにするコマンド」です。
rebaseは2種類の使い方が存在します。
- 別々のブランチで伸ばした開発コミットを繋げ直す。
- 複数のコミットを1コミットにまとめる。
#別々のブランチで伸ばした開発コミットを繋げ直す。
$ git rebase 繋ぐ元にするブランチ名
#複数コミットを1コミットにまとめる
$ git rebase -i ひとまとまりにする地点の一つ前のコミットID
マージ
他のブランチの更新を取り込む処理です。
$ git merge 取り込みたいブランチ