初心者が「Git」を実務で使えるようになったら、どうしても知っておいて欲しいコマンド3選
弊社ソリューション事業部ではほとんど全ての案件でgitを導入してプロジェクトの管理をしております。そこでエンジニア歴間もない筆者が、具体的に実務ではどのように使っているかをお伝えしたく、この記事を書きました。
gitに関する基本的なことを、前々回の基本編、前回の実務編を通して紹介しました。しかし、ここまで読んでくださった方にどうしても知ってほしいgitコマンドを3つ紹介したいと思います。
前提
筆者の環境
- wsl2
- Ubuntu-20.02
- git version 2.25.1
- GitHub
想定
- 後輩エンジニア(筆者)と先輩エンジニアの2人で開発する。
- メインのブランチを main 、後輩エンジニアのブランチを kouhai 、先輩エンジニアのブランチ を senpai とする。
- 後輩エンジニア(筆者)が開発する視点で記述する。
- 筆者はVimを使用してCLI上でファイルの編集をしますが、こちらはお好みのエディタを使用してください。
コミットグラフを綺麗に保ちたいとき
$ git rebase 取り込みたい対象ブランチ
通常、リモートリポジトリに更新あった場合、pullしてmergeしてっていう流れを踏むとおもいます。(前回の記事参考)
ただ、そうするとコミットグラフがぐちゃってなる場合がありますよね?
ぐちゃってならずに、綺麗に保つ方法が下記手順を実行すれば実現できるんです。
いざ実践
現状は下記の通りです。
$ git log --oneline --graph --decorate --all
先輩の「2回目のコミットです」というコミットまでが main ブランチに取り込まれており、 senpai ブランチと main ブランチが kouhai ブランチよりも先に進んでいます。
この時、下記コマンドを叩きます。
$ git checkout kouhai
$ git rebase main
$ git log --oneline --graph --decorate --all
すると、このように main ブランチにあるコミットの上に kouhai ブランチのコミットが積み上がるイメージで、 main ブランチの内容を kouhai ブランチに取り込むことができました。普通にマージする場合と比べて、非常にシンプルなコミットグラフになります。
参考:普通にマージした場合
$ git merge main
$ git log --oneline --graph --decorate --all
既にコミットしたコミットのコメントを修正したいとき
$ git commit --amend -m "メッセージ"
そもそもコミットコメントを間違えないでください、って話なんですが、それでも人間なので間違えることはあります。。。(筆者もたまにやってしまいます。)
そんな時にコミットを取り消して、もう一回コミットするっていう手順を踏んでもいいですが、コミットを取り消すコマンドってなんだっけって調べるの手間ですよね?仮にそのコマンドを暗記してた場合でも、コマンドを2つ叩くのは正直面倒ですよね?そんな時には下記のようにコマンドを叩いてください。
直前のコミットコメントを修正する場合と2つ以上前のコミットコメントを修正する場合で若干異なりますので、分けて記述します。
いざ実践 その1(直前のコミットのコメントを修正する)
現状は下記の通りです。
$ git log --oneline --graph --decorate --all
コミットコメントが「後輩の2回目のコミットですす」になってしまっています。
これを下記コマンドを叩いて「後輩の2回目のコミットです」に修正します。
$ git commit --amend -m "後輩の2回目のコミットです"
赤下線に注目すると確かに変更されています。
いざ実践 その2(2つ以上前のコミットのコメントを変更する)
例えば3つ前のコミットコメントを修正したい場合。
現状は下記の通りです。
$ git log --oneline --graph --decorate --all
3個前のコミットコメントが「後輩の33回目のコミットです」になってしまっています。
これを下記コマンドを叩いて「後輩の3回目のコミットです」に修正します。
$ git rebase -i HEAD~3
エディタ(筆者の場合はvim)が開きますので、赤下線の pick という文字を edit という文字に変更して、保存して、エディタを閉じます。
変更前 | 変更後 |
---|---|
そうしましたら、
$ git commit --amend -m "後輩の3回目のコミットです"
$ git rebase --continue
$ git log --oneline --graph --decorate --all
を叩いて変更されたか確認しましょう。
赤下線の部分が変更されました。
直前のコミットに修正を追加したいとき
$ git commit --amend --no-edit
コミットした後に、「あ、この修正も追加したかった」「この部分は要らなかった」という時に使う、直前のコミットに変更を追加できるコマンドです。
筆者は、例えばコメントを消し忘れたり、ここの改行要らないなって思った時に、ささっと修正する時に使います。(そもそも忘れるなって話ですが、、、diffが大量にあったりして見落としてしまう時、ありますよね。。)
いざ実践
現状のコミットグラフとファイルは下記の通りです。
$ git log --oneline --graph --decorate --all
$ vim kouhai.md
赤下線の部分のコメントが不要だったが、消すのを忘れてコミットしてしまいました。
そこでファイルから不要コメントを削除して、下記の通りコマンドを叩きます。
$ git add .
$ git commit --amend --no-edit
$ git log --oneline --graph --decorate --all
$ vim kouhai.md
無事不要コメントの削除を直前のコミットに取り込めました。
今回は不要コメントを削除する場合を示しましたが、修正を追加する場合も同様にできます。
おわりに
今回は、前々回の基本編・前回の実務編を読んでgitについてある程度詳しくなった人に、どうしても知って欲しいコマンド3選を紹介させていただきました。
他にもコマンドは多々ありますが、ここまで知っておけばgitでのソース管理について困ることはないと思いますし、実際、筆者もこれらのコマンドを使って開発をしております。少しでも参考になれば嬉いです。
この記事を書いた人
-
大学4年時春に文系就職を辞め、エンジニアになることを決意し、独学でRuby、Ruby on Railsを学習。
約1年間の独学期間を経てアーティスへWebエンジニアとして入社。現在はWebエンジニアとして、主にシステムの開発・運用に従事している。
抽象的なもの、複雑なものを言語化して文章にするのが好きで得意。
この執筆者の最新記事
- 2024年10月8日WEBVue3でjQueryのdatepickerを使いたい!実装手順と注意点を解説します。
- 2024年8月21日WEBVue3の非同期コンポーネントを使ってみる
- 2024年5月28日WEBLaravel×Inertia×Vue3でファイルアップロード機能を作ってみた
- 2024年4月15日WEBLaravel×Inertia×Vue3でCRUD機能を持つSPAを作ってみた
関連記事
最新記事
FOLLOW US
最新の情報をお届けします
- facebookでフォロー
- Twitterでフォロー
- Feedlyでフォロー