支援対象地域:札幌、仙台、関東、愛知、関西、広島、福岡


Gitはシンプル。でも簡単という意味ではない

Gitとは

Gitはドキュメント管理の負担を減らすことができるツールです。ファイルを手動管理する場合命名規則などを作り、それに則ることで管理することになります。しかし手動のバージョン管理は例外に弱く、管理が曖昧になる可能性があります。またヒューマンエラーを懸念する必要が常にあるため良い手法とは言えません。

Gitはバージョン管理を機械的に行ってくれます。Gitはリモートリポジトリとローカルリポジトリを併用して稼働します。この時リモートリポジトリが管理・調整役となります。ローカルリポジトリの作業内容を都度pushすることでリモートリポジトリ側に記録が残っていきます。Gitを使うことで手動管理の煩雑さから解放されることができます。また、Gitはブランチとマージを駆使することにより手動では難しい管理を実現します。別ブランチ作成による作業分担を実行することで同じファイルに対して同時に修正を行うことが実現できます。Gitの良い点はマージ機能を使うことにより機械的に同じファイルに対する修正を合成できる点です(コンフリクトしないよう事前の調整が必要)。人間が手動で合成を行った場合はバグの混入を疑う必要があります。目視では確認として不十分なため少なくとも簡易テストを行う必要があります。修正とテストを都度行わなければいけないため同時編集のメリットが低下します。場合によって、修正の順番を事前に打合せて同時編集を避けなければいけない可能性が生じます。このように手動で合成する場合のデメリットを機械的にマージすることにより回避することができます。

Git利用時にネックとなる点

Gitは管理と作業用リポジトリを明確に分けることができること、ブランチ・マージの活用によりプログラム変遷の複雑化を避けることができるため大変重要です。Gitは一定のルールに従って管理するシステムです。手順はシンプルであり、覚えてしまえばスムーズに運用することができます。ですが逆に言えば手順を覚えていなければ通常運用すら難しいことを意味しています。Gitを利用するにはある程度のラーニングコストを要します。この場合ネックになるのが管理者だけでなく一般利用者も知識を要する点です。きちんとGitの現状を把握しながら運用する必要があります。CUIでの場合git statusと入力することでローカルリポジトリの現状を確認することができます。都度確認することでファイルが現在どのステージにいるのか把握できるようになります。git statusを利用し現状を常に知っておくことでGit運用の難易度を下げることができます。

git statusはローカルリポジトリの現状を知ることができるコマンド

git statusを使用することでローカルリポジトリのファイルの状態を知ることができます。gitはファイル遷移の順序が重要となるため都度指示を行うCUIとの相性が良いですが、視覚的な判別力がGUIに劣ります。git statusで都度確認することにより現状を把握し続けることが非常に重要です。

一度もコミットしていない場合、git statusを入力した時にNo commits yetが表示されます。Untracked filesが表示されている場合は追跡されていないファイルが存在していることを意味しています。Gitの管理下に置いているディレクトリでは全てのファイルが何らかの監視対象となります。新たに作成したファイルはまだGitの管理対象にはなっていませんが監視下には入っています。Gitに登録する予定のある場合はファイルの状態を遷移させていく必要があります。逆にGitに登録したくない場合は例外指定を行う必要があります。Gitの管理下にあるファイルは何かしらの処置を必ず行わなければいけません。また、Gitの管理下にあるファイルを編集した場合Git Bashコンソールでは赤字でmodified: ファイル名 が表示されます。この場合もGitに対して申請処理を行う必要があります。どちらの場合もgit addコマンドを利用してステージングエリアに登録する必要があります。ステージングエリアに登録されると緑字に変化します。Gitはさらにgit commitコマンドを使って登録する必要があります。commit後にgit statusを実行するとnothing to commit, working tree cleanと表示されます。現状Gitが把握している編集中のファイルがないことを示しています。後はcommitされたデータをpushすることによりリモートリポジトリに送信することができます。

まとめ

Gitはドキュメントを管理する上での手間を削減するための重要なツールです。しかしルールに則って管理している都合上仕組みを理解して使うことが必須となります。git statusコマンドを利用することによりローカルリポジトリの現状を把握することができます。適切にファイルを管理することによってスムーズにpushできるようになります。