雑談

Gitについて基本的な事を調べながらまとめてみる(1)環境編

Gitをなんとなくで使っていた

はずかしながら

Gitを使い始めたのはいつだったろう?2013年くらいとだいぶ世間に普及してからのことで、お客様の運用に合わせてだったか、Pマーク取得のためだったかで導入した覚えがあります。

コマンドでどうこうするのは使いづらいと思いGUIで操作できる「TortoiseGit🐢」(トータスギット)というソフトを使ってはじめました。ですので、コマンドを使うやり方を知らない。知らないというかどこからコマンドを打つかも知らない状態でした。

そして、社内での開発メンバーは当時5名だったのと、主に小規模ウェブサイト構築が業務だったので定期アップデートリリースとかもなく、また、複雑なブランチなどの管理が必要なかったため、皆でmaster(default)ブランチに更新していく運用でした(ダメゼッタイ!)。これだけでも十分履歴がさかのぼれて有益でした。

しかし改めてGitの使い方を調べると、普通master(default)ブランチは直接更新しないんだそうです。masterはリリースが終わったら差分をマージして現行のリリース状態を保持する役割だそうです。(10年使ってても知らない人もいるよ☺)
※余談ですが「master」(master/slave)という言葉が差別的だということで現在は「main」に変わって来た流れだそうです。Gitのことを調べているとこのふたつの言葉が混在して混乱します。

なんとなくで使ってきましたがそろそろ基本的な部分、正しくあるべき姿を学びなおしたいと思います。

基本的なこと

Gitとは

Gitは、プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システムである。

Wikipediaより

Git以外のバージョン管理ツールでメジャーなのはSubversion、VisualSoueceSafeなど。

要するにみんなで一つのプロジェクトのファイルを更新していくのに、誰がどんな修正を加えたかわかるように、同時に複数人が同じファイルを更新したものをマージしたり、デグレした時に前のバージョンに戻したり、安定版をメンテしながら追加開発を進めたり、みたいなことが簡単にできる仕組みです。

リモートに共有のファイルがあり、それをローカル環境にコピーして修正して、リモートに反映します。

リモートの修正をローカルに反映したり、ローカルから修正したものを反映したりするためにGitクライアントソフトを使います。

どうやってGitを使うのか

Windowsクライアントで使用する場合

TortoiseGitを使う場合でも、コンソールからGitを使う場合でも、仮想環境などを使わずWindowsでGitのコマンドを使うためには必ずGit for Windowsをインストールします。

コンソールにてコマンドでGitを操作する場合

コマンドラインでGitの操作をするクライアントソフトでメジャーなものを調べたところ

  • GitBash(Git for Windowsをインストールすると利用できる)
  • Windowsの標準コマンドラインツール
  • PowerShell
  • Cygwin(Unixライクなツール。Cygwin上でGitパッケージをインストールする。)

などがありましたが、次に説明するGUIクライアントでもコマンドラインが使えるものもあります。

GUIでGitを操作する場合

  • GitGUI
  • Git Extensions
  • GitHub Desktop(Github提供のソフト)
  • Sourcetree
  • Folk
  • GitKraken
  • TortoiseGit

そもそもGitで管理するリモートファイルはどこにあるのか?

ストレージサービスであればそこにファイルを置くことで使えるようですが、Gitの利用が目的になっているサービスが使いやすいでしょう。

Gitに特化した機能があらかじめあるサービス

Windowsにディレクトリを同期していればGitのストレージとしても利用できる

  • Google Drive
  • iCloud
  • DropBox

実際みんなは何を使っているか?

私の人脈ネットワークを駆使して周囲のエンジニアに調査を行ったところ5名もの人から情報が得られました。

Gitよくわかんない派(主にGUI)

私はコマンドがわからないので、TortoiseGitと、VSCode使用しています!
Gitあまり使ってない。VSNが多い。SourceTreeは使っていたけど使いづらい。

Gitわかる派

コマンドとVSCodeが半々ぐらいです。
SourceTreeは使ったことありますがコマンドに慣れてたので結局使わなくなりました。mac標準のターミナルでzsh か bashを使ってます。
windowsではGitBashを使うときもあります。
でも複雑なコマンドはあまり使わないので正直どこでもいい感じです。
コマンドで、最近はiTerm2とfishから使ってます。一時期GitKrakenを使ってました。
仕事ではGitHub Desktop。(※仕事以外で使うんかい!と言ったら「趣味で使うだろ!」と返ってきました。)

けっこう十人十色な感じですね。(五人五色)

予告

「(2)管理イメージ」では具体的なコマンドを学ぶ前に、どのような管理をしていくのかを整理したいと思います。(Git flowとか、Github flow、Gitlab flowとか)

reiko suzuki
OLD SKOOLシステムエンジニア。ねこを撫でながら働いています。