はじめに
この記事では
バージョン管理システムのGitを
職場で使うことを想定して
Gitの使い方についてまとめた記事です。
ベストプラクティスや間違いがあれば
それなりに良い方法で書き直していきます。
ベテランでもGitが扱えるとは限らないらしい
とある人に聞いたところによると
デキる技術者でも案外、
変更履歴のステージングやアド、コミットができないということらしい。
筆者は去年ぐらいからGitをプライベートで使い始めた一般の誤家庭の人
今度、新人君が配属されるということなので
彼にはちゃんと基本コマンドを覚えてもらいたいというオモイと
ちゃんとコードレビューできる体制と育てる環境を確立するという目標がある。
そうしたオモイや目標を実現させるためにGitの基本コマンドについてまとめてみました。
実際に職場に導入してもいないので
いざ使ってみるとこれもあれも必要となるかもしれないけど
とりあえず基本はおさえようというスタンス。
想定される環境
客先常駐
リモートリポジトリ環境なし
GitHub使用不可
Windows10 Pro 64bit
Git 2.26.2.windows.1
想定される利用者
研修中のエンジニア(例えば、業務未経験者など)
初学者を教えるベテラン、中堅エンジニア
何を管理するか
ソースコード
たとえば
・TeraTermLanguage
・HTML
・JavaScript
・PHP
初期設定(git config)
GitHubは使わない(使えない)けど
これがないと誰が何をしたかわからないので
最初に確認しておく。
user.nameは
PCの端末名と自分の名前をローマ字で入れておけばOK
mailaddressは会社のメールアドレスか
個人あてのメールアドレスがないなら
所属しているグループのアドレスがいいだろう。
$ git config --global user.name [username]
$ git config --global [mailaddress]
最初に教えるべきコマンド
最初からブランチ切るのは難易度高いと思うので
手堅いところから教えていく
$ git init
$ git add -a
$ git status
$ git commit -am "命令系のコメント"
リポジトリの初期化は知っておかないと何事も始まらないだろう。
git add については -a と .(ドット)の違いについて
聞かれるかもしれないのであらかじめ考えておく
変更したかどうか知りたいこともあるだろう
そういうときのために
git statusコマンドを新人に叩き込んでおく
「先輩!どれ変更したかわかりません」と言われて対応するのは
正直なところ大変だ。
初回ならば何の問題もないかもしれないがことあるごとに
やられたら死ぬ。間違いなく死ぬ。
そして、最後にcommit
これもオプションについて聞かれるかもしれない。
ツッコミ用のアンサーを用意しておこう。
ここで大事なのがコメント付きのcommitかどうかである。
もちろん、commitからのリカバリー方法も大事だが
コメントが付いていないと
リカバリするときにいつまでのcommitに戻れば
いいかわからなくなる可能性がある。
最低限教えたら次にブランチをやらせてみよう
$ git checkout -b ブランチ名
$ git branch
ここもオプションについてry
-b オプションは新規にブランチを作成して切り替えるという意味
すでに作成されているブランチがある場合はエラーになる。
checkoutでブランチを切り替えたと錯覚して
作業を続けてしまうというポカ防止のために
必ず、git branchコマンドを叩いて
現在、自分が参照しているブランチを意識させよう。
ここまできたらあとは運用方法である。
新しくリポジトリをつくる場合
新人君に
リポジトリを作って
初期化して
アドして
コミットさせたい。
そして、ブランチの活用までやらせたい。
そう思っていろいろ考えましたが
Railsポートフォリオにある運用方法を踏襲させていただくことにしました。
最初のコミットメッセージは
なにが良いんだろうかと考えましたが
無難に「initial repository」として
2回目以降からは案件の管理番号というのが職場にあるので
それを入れてもらった形で体言止めで入力してもらう。
例えば、~機能の改修-XXXX みたいな感じ
ここは実際に使ってみて具体的に決めたほうが良さそう。
デデデ
masterブランチの修正は基本的に行わないものとして
新しくブランチを切ってから修正を加えて
チームかリーダーのレビュー後マージする形をとる。
レビューはどのようにして行うか
そのあたりのノウハウを集めないときつそうな感じがする。
おいおい、集めることとする(続
出力メッセージの英語翻訳
あと、英語読めない人が圧倒的に多いはずなので
これらも職場のどこかに貼っておいて覚えてもらおう。
単語 | 日本語 |
---|---|
On branch master | 親ブランチを参照しています |
No commits yet | まだコミットされていません |
Changes to be committed | コミットされる変更 |
Changes not staged for commit | 変更がステージングされていません |
nothing to commit, working tree clean | 作業ツリーにコミットするものは何もありません |
discard changes in working directory | 作業ディレクトリの変更を無視する |
他
初期化といってgitの設定ファイル丸ごと削除されたどうしようとか
思っていますが
実際に使い始めてから考えることとする(続
まとめ
結論言うと、まずはこれらを新人君には覚えてもらおう。
$ git config --global user.name [username]
$ git config --global [mailaddress]
$ git init
$ git add -a
$ git status
$ git commit -am "initial repository"
$ git checkout -b ブランチ名
$ git branch
$ git checkout master
$ git branch