エンジニアに愛され活用されるGit

ビジネスマンがタブPCを持っている


Gitは、エンジニアに活用されている「ソースコードバージョン管理ツール」です。

システムなどを開発するのは、複数人でプロジェクトチームを作って開発を進めていくのが通常です。

複数のエンジニアがソースコードに触ることになり、どこがどう変更されたのか分からないと大変なことになってしまいます。

そこで役立つのが「Git」です。

Gitはソースコードのバージョンを管理してくれるので「誰がいつソースコードを書き換えたのか」、「どれが最新のバージョンなのか」ということまで把握できます。

昨今の開発現場では、学生からアマチュア、プロのシーンまで「Git」が幅広く親しまれています。

正確には「分散バージョン管理システム」であり、その分散という名の通りリポジトリを「分散」。

ローカルリポジトリとリモートリポジトリが分けられているために、仮にネットワークに繋がっていなくてもバージョン管理が行えます。


広く親しまれれるGitHub

SE システムエンジニア PC 会社


Gitが更に広く親しまれている要因の1つは「GitHub」です。

勘違いされがちですが、GitとGitHubは厳密にいえば別物。

GitHubは「Gitを利用したサービス」の名称です。

クラウド上でGitを利用してバージョン管理ができます。

そのため「Git=GitHub」というわけではありません。

他にもいくつかGitを利用したサービスというものは存在しているので、必要に応じて好きなサービスを利用しましょう。


コマンドを使いこなして更に活用

プログラミングする女性


今回の記事では、Gitコマンドに注目していきます。

Gitには覚えておくと便利なコマンドが多く存在しており、適切に用いることができれば業務効率を格段に上昇させられるでしょう。

コマンドの数自体は膨大な量で、とても覚えきれません。

そのため、今回は覚えておくと特に便利なコマンドをピックアップして紹介していきます。

そして、よく使う基本的なコマンドはもちろん主要オプションについてもチェック。

コマンドを使いこなして、更に快適なシステム・アプリケーション等々を開発していきましょう。


Gitのブランチ

若い同僚と資料を見る


さて、Gitには便利な機能「ブランチ」があります。

これは履歴の流れを分岐させてそれぞれで変更ができるというもの。

分岐しているブランチは他のブランチと干渉せず、別個で保存・上書きができるようになります。

同一リポジトリ内で複数の変更を進められるという非常に便利な機能の1つです。

しかも、そのブランチをマージさせることで1つのブランチにまとめてしまうこともできます。

他のプロジェクトメンバーの作業に影響を与えず、そして自分の作業にも影響を与えられないため、各々のタスクに集中して取り組むことができます。

最終的にブランチをマージさせて1つのブランチに合体させればよく、それぞれで機能追加やブラッシュアップなどに取り組めるでしょう。


ブランチに関係するコマンドとオプション

オフィスで働くプログラマー

では、最初はこの「ブランチ」に関するコマンドをチェックしていきましょう。


ブランチの一覧表示コマンドおよびオプション

まずは、リポジトリに存在しているブランチ(ローカルブランチ)を一覧表示するコマンドがこちらになります。

  1. git branch

非常にシンプルです。

上記は「git branch — list 」とも記述できます。


リモートブランチおよび全てを表示するオプション

また、ローカルではなくリモートブランチを表示したい場合、およびどちらもまとめて確認したい際は以下のオプションを追記したコマンドを利用してください。

  1. git branch -r
  2. git branch -a

1行目でリモートブランチ、2行目でローカル・リモート両方のブランチを表示可能です。

「remote」の「-r」「all」の「-a」と考えると覚えやすいかもしれません。

基本的にブランチに関するコマンドは、上記の「git branch」をベースに色々なコマンドやオプションを加えていくイメージです。


ブランチを新たに作成する

人々


例えば、新たに「branchname」というブランチを作成・派生させたい際には以下のコマンドを叩きます。

  1. git branch branchname

先ほどのコマンドに再生したいブランチ名を書き加えただけであることが分かります。

このように「git branch」がベースになっていることが分かれば、ブランチに関連するコマンドを覚えるのはさほど大変なことではありません。


ブランチを削除するコマンド

対して、ブランチを削除したい際には以下のコマンド・オプションを使用します。

  1. git branch -d branchname

これで削除可能です。

ただし、先ほどお伝えした通りGitにはブランチをマージする機能があります。

もし仮に削除しようとしたブランチが、ブランチにマージされていない変更が残っている場合。

Git側が削除操作を拒否します。

そのため、誤ってまだ消してはいけないブランチを削除してしまったなどという事態に陥る事態はないので安心です。


強制削除したいときは「-D」

忙しい女性


ただ、ブランチにマージされていなくても不要なブランチがあるケースも起こり得るでしょう。

その場合はこちらのコマンドで強制的に削除できます。

  1. git branch -D branchname

-dが大文字「-D」に変わりました。

逆にいえば異なるポイントがそれだけなので、削除コマンド・オプションを利用する際にはよく注意しましょう。


ブランチの切り替え

また、他にも覚えておくと何かと便利なブランチ関連コマンド・オプションがあります。

ブランチを切り替えたい際にはこちらのコマンドを利用してください。

  1. git checkout <ブランチ名>

上記で使用するブランチを変更できます。

コミットしていない変更内容も移動先のブランチへ引き継がれるので注意してください。


ブランチのマージコマンド

飲み物を飲む若い女性ハッカー


ブランチとマージは切っても切り離せない関係性です。

マージ関連のコマンドを紹介いたします。

現在作業を行なっているブランチに指定したブランチをマージするには、以下のコマンドを利用します。

  1. git merge <指定ブランチ名>

先ほどまで使っていた「branch」の部分が「merge(マージ)」に変わっただけであることが分かります。


pushコマンド

WEBデザイン


「git push」コマンドでブランチの履歴を更新できます。


基本的なコマンド

pushコマンドには最も基本的ともいえるようなコマンドが存在しているので、まずはこちらをご覧ください。

  1. git push origin master

上記コマンドはローカルリポジトリからリモートリポジトリへ変更を反映させるコマンドです。

具体的にいえば、ローカルブランチの「master」を指定し、リモートリポジトリの「origin」にある同名(master)のブランチに反映するという処理になります。

「master」の部分と「origin」の部分を変更して、適切なローカルブランチ名およびリモートリポジトリ名を指定しましょう。


省略したシンプルな形

また、pushコマンドは省略してシンプルに記述できます。

  1. git push

現在のブランチの上のブランチとして設定されたリポジトリのブランチがpush先となります。

この点を理解していれば非常にシンプルで短い記述によってpushができてしまうので、こちらを利用していけるでしょう。


コミット

コワーキングスペースで働く男性


Gitを利用する上で、コミットも欠かせない作業の1つです。

コミットのコマンドもとてもシンプルなので、ざっくりとチェックしてしまいましょう。

  1. git commit -m “コメント”

これでコミットができます。


変更のあるファイル全てをコミットする際に用いるオプション

コミットに関しても、様々なオプションが存在しています。

こちらのコマンドは、変更のあったファイルを全てコミットするコマンド・オプションになります。

  1. git commit -a

ブランチの時と同様「all」の「-a」と覚えておくと良いかもしれません。


取り消したいときに使うコマンド

ノートPC


コミットを取り消したい場合も当然生じ得ます。

そういったときにはこちらのオプションを利用してコマンドを叩きましょう。

  1. git commit –amend

上記コマンドで、直前のコミットを取り消すことが可能です。

覚えておくとそういった事態に陥った際に速やかに対処できて便利です。


取り消しにはresetコマンドも

また、同じくコミットを取り消したい際にはresetコマンドも使用できます。

  1. git reset –hard HEAD^
  2. git reset –soft HEAD^

1行目はワークディレクトリの内容を書き換え、2行目はワークディレクトリの内容をそのままに、それぞれ直前のコミットを取り消すことが可能です。

ちなみに、上記コマンドの「HEAD」はHEAD^で直前のコミットが指定されます。

そして「HEAD~〇」と記述すれば、○に当てはめた数字分前のコミットを指定できます。

併せて覚えておくといいでしょう。

また、ステージング登録の取り消しの際にもresetコマンドが利用できます。

  1. git reset HEAD <ファイル名を指定>

どのコマンドも特別複雑ではないので覚えてしまいましょう。

resetコマンドを利用する際の「–hard」と「–soft」の部分、HEADの指定「^」・「~○」だけ注意が必要かもしれませんね。


ステージング登録と削除

パソコン画面を示して同僚と話す男性


Gitでステージングを登録するには「add」コマンドを利用し、削除するには「rm」コマンドを利用します。

実際のコマンドをそれぞれチェックしてみましょう。


addコマンド

まずはaddコマンドです。

  1. git add <ファイル名>

こちらでステージング登録ができます。

また、ワーキングツリーにある全てのファイル・ディレクトリをまとめて実行してしまうことも可能です。

  1. git add .

オプションとして「.」を指定するだけなので非常に簡単です。

拡張子のみを指定するといった方式も可能で、例えば「HTMLファイル」を指定する場合は以下のようにオプションを追加します。

  1. git add *.html

更にディレクトリを指定したければ、「git add ディレクトリ名/*.html」のように記述することも可能。

addコマンドはシンプルながら融通の効いた命令が行えることが分かります。


rmコマンド

何かを削除する際にはrmコマンドを使用します。

特定のファイルを削除したい際には、以下のオプションと共にファイルを指定しましょう。

  1. git rm -f <ファイル名>

非常にシンプルです。

また、指定したディレクトリを丸ごと削除するということもできます。

  1. git rm -r <ディレクトリ>

上記コマンドを実行すれば、指定したディレクトリを削除できます。


Gitコマンドが使いこなせるエンジニアを目指す

Webデザイン・開発


今回の記事では、Gitコマンドをカテゴリ別にいくつか紹介してきました。

紹介してきたコマンドはどれも基本的ではあるものの、頻繁に使われる便利なコマンドばかりです。

Gitは、非常に活用されるシーンが多い管理ツールとなっています。

特にGitHubはかなりメジャーなものとなってきており「Gitといえばコレ」といえるほどまでの知名度を持つようになってきました。

今回の記事で紹介したコマンドは、数あるGitコマンドのほんの一部です。

今回紹介したコマンドを覚えて適切に扱えるようになったのであれば、ぜひそこでストップせずに新たなコマンドも覚えるように意識しましょう。

コマンドは、覚えておけばおくほど業務の効率が上昇します。

利用頻度が高ければ高いほど、必要に応じてその度に調べる時間が無駄になるからです。

業務効率を上げることができれば、その分できる作業量なども増加します。

フリーランスとして働いている場合「自分の作業時間」は収入やスキルなどに直結する非常に重要な要素です。

Gitに限ったことではありませんが、普段からコマンドを叩く際にはオプションの意味も含めて、なるべく「記憶する」ように意識してください。

そうすれば、複雑で難しそうに見えるコマンドもすんありと頭の中に入ってきます。

ぜひたくさんのコマンドを覚えて、エンジニアとして他のメンバーから一歩、二歩リードした存在になりましょう。