1. ホーム
  2. 記事一覧
  3. 必見!現場で役立つGitコマンド29選をまとめて紹介!

2024.05.31

必見!現場で役立つGitコマンド29選をまとめて紹介!

こちらのページは、エンベーダーで紹介している 「Git」のコマンドのリンクまとめ となっています。

また、記事だけでなく実際に手を動かして学べる環境も用意していますので、記事を読んだ後にコマンドを実施することでぜひ自分のものにしてください。

Linux応用コース

https://envader.plus/course/5/scenario/1055

様々なGitコマンドを習得し、Gitマスターを目指しましょう!

GitHubについて

そもそも「Git」や「GitHub」とは何かということについて説明しています。

初めての方は、まずはこちらからご覧ください。 https://envader.plus/article/68

基本的な操作

git commit

git add コマンドでステージングエリア(インデックスとも呼ばれます)に追加した変更を新たなコミットとして記録します。コミットとは作業している状態を保存するスナップショットのようなものです。

git commit -m "コミットのメッセージ"

https://envader.plus/course/5/scenario/1055

git switch / git checkout

主に作業しているブランチを切り替えるのに使用します。その動作はチェックアウトと呼ばれ、ブランチだけでなくコミットを指定することもできます。

git switch [ブランチ名]
git checkout [ブランチ名/コミットのハッシュ]

https://envader.plus/article/300

git merge

別のブランチの変更を現在のブランチに取り込むマージと呼ばれる動作を行います。複数のファイルで同じ箇所を操作していた場合はコンフリクト(競合)が発生し、基本的に手動で解決しないとマージすることができないので、注意する必要があります。

git merge [ブランチ名/コミットのハッシュ]

https://envader.plus/course/5/scenario/1062

リモートリポジトリに関連する操作

git fetch

リモートにあるブランチの情報を取得し、ローカルのリモート追跡ブランチに反映させます。他の開発者がリモートリポジトリに上げたブランチや、その最新の状態の情報を取得することができます。

git fetch

https://envader.plus/article/368

git push

ローカルリポジトリの状態をリモートリポジトリにプッシュします。主に、自分が作業しているブランチの状態をリモートリポジトリに追加、または反映したい時に行います。

git push -u origin develop

https://envader.plus/course/5/scenario/1056

git ls-remote

リモートリポジトリにあるリファレンスを全てリストアップします。リモートリポジトリのブランチ情報や、リポジトリの構造を簡単に知りたい時に便利です。

git ls-remote

https://envader.plus/article/365

ファイルと変更の管理

git mv

Gitからの追跡を保ったままファイル名の変更や移動を行うことできるため、変更履歴が保持されます。通常のmvコマンドを使用すると、Gitはファイルの削除と新規作成として認識してしまいます。

git mv fileA fileB

https://envader.plus/article/372

git stash / git diff

git stashは、現在のワーキングツリーでの変更を一時的に保存するために使用します。これにより、コミットを作成せずに変更を保存し、後で再適用することができます。

git diffは、コミットやブランチ間の変更を表示するために使用します。これにより、異なるコミット間でどのような変更が行われたかを確認することができます。

git statsh
git stash apply
git stash drop

git diff

https://envader.plus/article/245

git clean

Gitの追跡対象外のファイルを一括して削除するために使用します。Gitで管理されていないファイルや、「.gitignore」ファイルで指定されたファイルを、ワーキングツリーからまとめて削除することができます。これにより、不要なファイルを簡単に片付けることができます。ただし、削除したファイルを元に戻すことはできないため、使用する際は注意が必要です。

git clean -f

https://envader.plus/article/375

過去に行った操作に関するコマンド

git reset / git revert

git resetは、ブランチが参照しているコミットを変更するために使用します。

git revertは、特定のコミットで行われた変更を打ち消すコミットを作成します。これにより、そのコミットの変更内容を元に戻すことができます。

git revert [コミットのハッシュ]
git reset [オプション] [コミットのハッシュ]

https://envader.plus/article/244

git reflog

リポジトリで行われた操作(ブランチの切り替え、マージなど)の履歴を表示するために使用します。これにより、「HEAD」やブランチが辿ってきたコミットを時系列順に確認することができます。

git reflog

https://envader.plus/article/394

git cherry-pick

他のブランチにある特定のコミットを現在のブランチに適用するために使用します。これにより、他のブランチで行われた変更を選択的に取り込むことができます。バグ修正や機能追加を別のブランチにも適用したい場合に便利です。

git cherry-pick [コミットのハッシュ]

https://envader.plus/article/371

git rebase (squashについて)

コミットの履歴を整理するために使用します。git rebase -i(インタラクティブリベース)を使用することで、複数のコミットを1つにまとめることができます。

git rebase -i 

https://envader.plus/article/268

様々な情報の表示

git shortlog

指定したブランチに対して行われたコミットの概要を表示するために使用します。各コミットの作成者とそのコミット数を一覧で確認することができるため、誰がどの程度のコミットを行ったのかを把握するのに役立ちます。

git shortlog

https://envader.plus/article/359

git show

特定のコミットの詳細情報を表示するために使用します。コミットのハッシュ値、作成者、日付、コミットメッセージなどを確認することができます。

git show [コミットのハッシュ]

https://envaderplus/article/369

git blame

ファイルの内容を表示し、各行の左側に最後に変更したコミットのハッシュ値と作成者が表示されるため、ファイルの各行がいつ、誰によって最後に変更されたかを簡単に確認することができます。

git blame [ファイルのパス]

https://envader.plus/article/373

git ls-tree

指定したローカルブランチのディレクトリ構造とファイルを表示するために使用します。ブランチの階層構造などを把握するのに役立ちます。

git ls-tree [ブランチ名] [パス]

https://envader.plus/article/360

その他

git grep

リポジトリ内のファイルから指定した文字列や正規表現パターンを検索するために使用します。コミット履歴全体や特定のブランチ、タグなどを対象に検索することができ、特定の文字列がどこで使用されているかを素早く見つけることができます。

git grep "検索キーワード"

https://envader.plus/article/386

git archive

リポジトリの特定のバージョン(コミットやタグ)からファイルを抽出し、アーカイブファイル(zipやtar)を作成するために使用します。これにより、特定の時点でのソースコードを簡単に配布することができます。

git archive -o [ファイル名].zip HEAD

https://envader.plus/article/389

git fsck

リポジトリ内に存在するファイルなどのオブジェクトの整合性をチェックするために使用します。壊れたオブジェクトや、参照されていないオブジェクトを検出するため、ブランチやタグ、HEADから参照されていない「ダングリングコミット」を検出する際にも便利です。

https://envader.plus/article/400

git fsck

git gc

リポジトリの最適化とクリーンアップを行うために使用します。不要なオブジェクトを削除し、リポジトリを最適化することで、パフォーマンスを向上させることができます。

git gc

https://envader.plus/article/393

git tag

特定のコミットに対して、ブランチとは異なる「タグ」という目印をつけることができます。タグはリリースバージョンを管理する際に使われることが一般的です。

git tag [タグ名]

https://envader.plus/article/367

git config

Gitの設定を管理するために使用します。ユーザー名やメールアドレス、エディタの設定など、Gitの動作を制御するための設定を行い、プロジェクトのルールや個人の好みに合わせてカスタマイズすることができます。

git config [オプション] <キー> <値>

https://envader.plus/article/370

git check-ignore

指定したファイルが「.gitignore」ファイルによって無視されているかどうかを確認するために使用します。設定変更後の確認や、CIのツールと組み合わせることでより安心してリポジトリ運用をすることができるようになります。

git check-ignore [ファイルのパス]

https://envader.plus/article/378

git bisect

二分探索アルゴリズムを用いて、バグが混入したコミットを効率的に特定することができます。コミット数が多い際に特に役立ち、またテストコードなどが存在する場合にはバグが混入したコミットの特定を自動化することもできます。

git bisect [サブコマンド]

https://envader.plus/article/395

git apply

パッチファイル(差分ファイル)をワーキングツリーに適用して反映することができます。特定のOSSへのコントリビュートや、オフライン環境にあるリポジトリへ別の環境で作業した差分を適用したい時などに便利です。

git apply [パッチファイルのパス]

https://envader.plus/article/396

まとめ

エンベーダーでご紹介しているコマンドだけでもこのように便利なコマンドが数多くあります。基礎的なコマンドだけでなく様々なGitコマンドを使いこなせるようになることで、プロジェクトにおいて生産性を大きく向上させ、よりよいソフトウェアを効率的に開発することができるはずです。ぜひエンベーダーの記事や演習を活用して、Gitのスキルを磨いてください。皆さんがGitマスターになれることを願っています!

【番外編】USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

IT未経験者必見 USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話

プログラミング塾に半年通えば、一人前になれると思っているあなた。それ、勘違いですよ。「なぜ間違いなの?」「正しい勉強法とは何なの?」ITを学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。

「フリーランスエンジニア」

近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。

「成功する人とそうでない人の違いは何か?」

私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。

比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。

多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、

note記事3000いいね超えの殿堂記事 今すぐ読む

エンベーダー編集部

エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。

RareTECH 無料体験授業開催中! オンラインにて実施中! Top10%のエンジニアになる秘訣を伝授します! RareTECH講師への質疑応答可

関連記事