Gitは、SVNに変わるバージョン管理システムとして、IT業界でも昨今大人気のソフトウェアですが、私はまだあまり知らなかったので体系的な知識を整理してみます。
また、ITエンジニアの業界だけでなく、Webデザイン等のWeb業界でも、昨今は流行っています。
Git
2005年にLinuxの開発者が開発したファイルの変更履歴を記録できる分散型のバージョン管理システムです。なお、SVNやCVS等のバージョン管理システムは集中型のバージョン管理システムと対比して呼ばれます。
分散型バージョン管理システムの特徴
- ネットワークに接続しなくても、個人PCで作業をすることができる。(オフライン作業が可能)
- 任意の個人の好きなタイミングで同期することができる。(他人に影響が及ばず色々検証ができる。)
- GitHub等のインターネットを介して皆がアクセスすることが可能な「中央リポジトリ」を用意することでいつでもどこでも効率よく開発をすることができます。
GitHubについては下記の記事で解説しています。
【Git】「リモートリポジトリ(GitHub等)」、「Bitbucket」の概要、GitHubの認証、GitHub Actions
GitのSubversionと比べた場合の利点
- 処理速度が早い。
- マージ機能が優れている。
- オフライン作業がしやすい。
Gitクライアントソフト
CUIクライアント
コマンドラインでGitを操作することです。GUIクライアントに比べるととっつきにくいですがGitの全ての操作をすることが可能です。
GUIクライアント
ツールによってはできない操作がある。
SourceTree
GUIで直感的にGitを操作できるソフトウェアです。
無料で、日本語対応、Windows/Mac両方対応、BitbucketやGitHubとも連携可能なので、初心者にも安心です。
Gitも同時にインストールされます。
GitHub Desktop
.gitディレクトリ
.gitディレクトリはGitに必要なファイル一式が含まれます。
構成要素
ディレクトリ名 | 説明 |
---|---|
HEAD | |
branches | |
config | Gitの設定ファイルが含まれます。 |
description | |
hooks | |
info | |
objects | リポジトリの本体になります。「圧縮ファイル」、「ツリーファイル」、「コミット」が保存されます。 |
refs | |
git-secrets
用途
- AWSのアクセスキー(クレデンシャル)
- サーバーのID/password
特に、「git-secrets」はAWSが開発しているだけあってAWSのクレデンシャルとは相性が良いです。
そもそもクレデンシャルとは?
IDやパスワードなどの認証情報などのことです。
仕組み
gitでcommitしたタイミングで事前に設定しておいた正規表現にマッチするかどうかをチェックして含まれていたらそのコミットを弾きます。
インストール
1 |
brew install git-secrets |
Gitの設定をするコマンド
1 |
git config |
オプション
オプション名 | 説明 |
---|---|
--global | ホームディレクトリの.gitconfigに設定が保存されPC全体の設定になります。このオプションを付けない場合はローカルリポジトリの設定のみに設定が反映されることになります。特定のプロジェクトだけでなくプロジェクト共通の設定をしたい場合等に使います。 |
--list | 設定値の一覧を表示する。 |
--unset | 設定を削除できる。 |
設定値
設定値 | 説明 |
---|---|
user.name | Gitのユーザー名 |
user.email | Gitのemailアドレス |
http.proxy | プロキシ、会社等でプロキシ経由でネットにアクセスしている場合は指定する場合がある。 |
core.editor | 利用するエディタ |
使用例
Gitに設定値を設定する。
ユーザー名を登録する場合は下記のように指定します。
1 |
git config --global user.name tanakataro |
特定の設定値を確認する。
例えば、特定の設定値「user.name」という設定値を確認したい場合は下記のように指定します。
1 |
git config user.name |
特定の設定値を削除する。
1 |
git config --global --unset 設定項目値 |
この記事へのコメントはありません。