こちらのページは、エンベーダーで紹介している 「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を学び始める全ての人に知って欲しい。そう思って書きました。是非読んでみてください。
「フリーランスエンジニア」
近年やっと世間に浸透した言葉だ。ひと昔まえ、終身雇用は当たり前で、大企業に就職することは一種のステータスだった。しかし、そんな時代も終わり「優秀な人材は転職する」ことが当たり前の時代となる。フリーランスエンジニアに高価値が付く現在、ネットを見ると「未経験でも年収400万以上」などと書いてある。これに釣られて、多くの人がフリーランスになろうとITの世界に入ってきている。私もその中の1人だ。数年前、USBも知らない状態からITの世界に没入し、そこから約2年間、毎日勉学を行なった。他人の何十倍も努力した。そして、企業研修やIT塾で数多くの受講生の指導経験も得た。そこで私は、伸びるエンジニアとそうでないエンジニアをたくさん見てきた。そして、稼げるエンジニア、稼げないエンジニアを見てきた。
「成功する人とそうでない人の違いは何か?」
私が出した答えは、「量産型エンジニアか否か」である。今のエンジニア市場には、量産型エンジニアが溢れている!!ここでの量産型エンジニアの定義は以下の通りである。
比較的簡単に学習可能なWebフレームワーク(WordPress, Rails)やPython等の知識はあるが、ITの基本概念を理解していないため、単調な作業しかこなすことができないエンジニアのこと。
多くの人がフリーランスエンジニアを目指す時代に中途半端な知識や技術力でこの世界に飛び込むと返って過酷な労働条件で働くことになる。そこで、エンジニアを目指すあなたがどう学習していくべきかを私の経験を交えて書こうと思った。続きはこちらから、、、、
エンベーダー編集部
エンベーダーは、ITスクールRareTECHのインフラ学習教材として誕生しました。 「遊びながらインフラエンジニアへ」をコンセプトに、インフラへの学習ハードルを下げるツールとして運営されています。
関連記事
2020.02.25
完全未経験からエンジニアを目指す爆速勉強法
USBも知らなかった私が独学でプログラミングを勉強してGAFAに入社するまでの話
- キャリア・学習法
- エンジニア
2024.06.02
リポジトリのメンテナンス係「git gc 」とは?活用方法を徹底解説!
この記事では、リポジトリのメンテナンスに不可欠な「git gc」を解説します。
- git
2023.10.29
Gitの作業効率化!git stash と git diff の使い方を解説
ここでは表題の`git diff`, `git stash` に加え、`git status`という3つの重要なコマンドをそれぞれの使い方や役割、利点について解説します。
- インフラエンジニア
- git
2024.04.28
git shortlogとは?git logとの違いを合わせて解説
この解説記事では、git shortlogについて、git logとの違いにもフォーカスを当てて説明していきます。
- git