その際の資料を転記します
なお、下を前提としています
- ある程度ターミナルに慣れている
- ある程度技術的素養がある
gitとは
- バージョン管理システム
- 変更履歴の記録
- 以前の状態に戻れる
- 誰がいつどう変更したか調べられる
- ディレクトリの構造全体を記録できる
- バージョン管理システムのデファクトスタンダードになっている
- 元はLinuxのコード管理としてLinus氏が開発
- メンテナは日本人である濱野 純さん
- 従来の主流であったSubversionが集中型リポジトリでサーバー側で一元管理していたが、その欠点(遅い、マージが大変)への対応として、分散型リポジトリ(開発者のローカルとサーバーがそれぞれ独立している)方式を採用
- sha1
git用語集
# | 用語 | 説明 |
---|---|---|
1 | リポジトリ | gitで管理しているファイル群置き場 |
2 | ブランチ(branch) | これまでのファイルの変更履歴から、新たな変更履歴の作成するための枝分かれ。元々のファイル群に影響する事なく、変更を加えられる。新規機能の作成やバグ修正のためのパッチ用等 |
3 | マージ(merge) | 今自分がいるブランチに他のブランチの変更内容を加えること。たまにcomflictする(同じファイルの同じところに両者で変更を加えた場合にどちらが正しいのか判断できず、人の手によるマージ作業が必要となる) |
4 | インデックス/ステージング | commitする前の一時ファイル置き場。複数ファイルcommitする場合に一度インデックスにおいて(add)、commitするファイル群を整理してからcommitする |
知っておくべきコマンド
(説明しながら、ファイルに変更して、どんなレスポンスなのかデモをしていました)
# | (サブ)コマンド | 作用内容 |
---|---|---|
1 | status | リポジトリのファイル変更状況を知る |
2 | diff | ファイルの差分を確認 |
3 | log | commitの履歴を確認 |
4 | add | 変更したファイルをステージに登録 |
5 | commit | ステージに登録したファイル変更を確定 |
6 | clone | リモートのリポジトリをローカルにコピー |
7 | branch | リポジトリのブランチを確認する。新たにブランチを作成する |
8 | switch [branch] | ブランチを変更する |
9 | merge | ブランチの変更を取り込む |
10 | push | ローカルのcommit内容をリモートに反映する |
11 | pull | リモートリポジトリの変更をローカルブランチに反映する |
Commitメッセージにはprefixを
参照: Gitのコミットメッセージの先頭につけた方が良い単語リスト(prefix集)
コミットメッセージだけ見ても、どういった修正か分からない場合も多いので、prefixをつけるのをお勧めします
bug修正なら「fix」、新機能なら「feat」、リネームなら「rename」といった感じです
Pull Requestについて
- gitの本来の機能ではなく、githubが作成したもの
- 今ではgitリポジトリサービスを展開していると必ずついてくる
- 本流のブランチから新たにブランチを作成して、新機能の開発やバグの修正を行い、そのブランチのマージをお願いをする事
- 権限や知見を持った人が変更内容を確認して、マージや状況によっては却下を行う
gitの初期設定
Must
git config --global user.name ”atakig”
git config --global user.email atakig@beex-inc.com
お好みで
git config --global core.editor "'C:/Program Files (x86)/Notepad++/notepad++.exe' -multiInst -nosession”
[alias]
st = status
ci = commit
dw = diff --word-diff
dr = diff --color-words --word-diff-regex='\\w+|[^[:space:]]'
tree = log --oneline --all --graph --decorate --color
CodeCommitを使う上での設定作業
CodeCommitのリポジトリ名は、AWSアカウント内でユニークとなる
リポジトリへのUrlにはAWSアカウントIDが入っていないため、名前解決をどうしているのか不明
スムースな作業のためにGRCを利用します
例: https://git-codecommit.ap-northeast-1.amazonaws.com/v1/repos/beex-code-commit
HTTPS(GRC) は、git-remote-codecommit (GRC) で使用するプロトコルです。このユーティリティは Git を拡張することで、コードを CodeCommit リポジトリに対しプッシュおよびプルするための簡単な方法を提供します。これは、フェデレーティッドアクセス、ID プロバイダー、および一時的な認証情報を使用した接続をサポートする際に推奨されるプロトコルです
pip install git-remote-codecommit
git remote add <name> <url>
git remote -v
bxcc codecommit::ap-northeast-1://[aws-profile]@beex-code-commit (fetch)
bxcc codecommit::ap-northeast-1://[aws-profile]@beex-code-commit (push)
CodeCommitを使ったPullRequestと承認のデモ
[内容割愛]