4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

社内で「GitでPullRequestする為に​最低限知っておきたい事」ってお題でgitの説明会を開催した

Last updated at Posted at 2023-06-23

その際の資料を転記します

なお、下を前提としています

  • ある程度ターミナルに慣れている
  • ある程度技術的素養がある

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”​

$HOME/.gitconfig​
[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 プロバイダー、および一時的な認証情報を使用した接続をサポートする際に推奨されるプロトコルです​

grc.sh​
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と承認のデモ

[内容割愛]

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?