🤔

現場でよく使うGitコマンド

に公開

私が現在参画しているプロジェクトでよく使用するGitコマンドをまとめてみました。
未経験者を多く採用している企業ですので、基本的なコマンドしかありませんが、未経験者は理解ができない、そもそも知らないコマンドも多いと思います。
それらをまとめてみますので、よければチートシートとしてご使用ください。

git add

基本形

git add [オプション] [ファイルパターン]

主なオプション

# 全ての変更をステージングエリアに追加する。
git add .

# 上記と似ているが、-A はリポジトリ全体での変更を補足する。
git add -A

# 変更の一部だけをインタラクティブにステージングするためのオプション。変更を確認しながらステージングできる。
git add -p

Gitのステージングエリアに変更を追加するためのコマンドです。ステージングが何かわからない未経験者の方はかなり多い印象なので学習しておきましょう。
上記はほんの一部分ですが、未経験者が扱う分にはgit add .さえ覚えておけば良いと思います。

ステージングとは

  • コミットする前に変更を一時的に保存するための領域を指します。この領域は「ステージングエリア」または「インデックス」とも呼ばれます。

git commit

基本形

git commit [オプション]

主なオプション

# コミットメッセージを指定。
git commit -m "コミットメッセージ"

# 直前のコミットを修正する。
git commit --amend -m "修正されたコミットメッセージ"

ステージングエリアに追加された変更をリポジトリに保存するためのコマンドとなっております。
こちらは基本的にgit commit -m を覚えておけば大丈夫です。
--amendについてはあまり使用しませんが、コミットメッセージを間違えることはあるので覚えておけば検索する手間を省けます。

git push

基本形

git push [リモート名] [ブランチ名]

※デフォルトでは、リモート名は通常originとなっています。

主なオプション

* 指定したリモートリポジトリに指定したブランチをプッシュ。
git push origin [ブランチ名]

* 強制的にプッシュ。リモートリポジトリの履歴を上書きするため、注意が必要。
git push -f

* リモートリポジトリからブランチを削除
git push [リモート名] --delete [ブランチ名]

* --deleteオプションの代わりに使用可能
git push [リモート名] :[ブランチ名]

git pushはローカルリポジトリの変更をリモートリポジトリに送信するためのコマンドです。
手順としては上記のgit add,git commit後に行うのが基本となっております。
-fオプションはあまり使用しませんが、他のコマンドはよく使用するので覚えておきましょう。
特にリモートリポジトリの削除コマンドについては知らない方が多かったので覚えておくと良いです。

git fetch

基本形

git fetch [リモート名] [ブランチ名]

主なオプション

# デフォルトのリモート(origin)から全てのブランチの最新情報を取得。
git fetch

# 特定のリモートリポジトリから最新情報を取得
git fetch [リモート名]

# 特定のリモートブランチの最新情報を取得
git fetch [リモート名][ブランチ名]

#リモートで削除されたブランチをローカルからも削除
git fetch -p

リモートリポジトリの最新のコミットやブランチ情報をローカルリポジトリに取得するためのコマンドです。git fetchはリモートの最新情報を取得して更新するだけとなっています。
現在の現場では基本的にgit fetchしか使用しておりませんが、他のオプションも基本的なものなので覚えておきましょう。特に、git fetch -pコマンドを実施しないと削除されたブランチの情報が残り続けるので、都度実施しクリーンな状態を保つよう心がけましょう。

git pull

基本形

git pull [リモート名][ブランチ名]

主なオプション

# リモートから現在のブランチの最新情報をフェッチし、マージする。
git pull

# 指定したリモートリポジトリから現在のブランチの最新情報をフェッチし、マージする。
git pull [リモート名]

# 指定したリモートリポジトリの特定のブランチの最新情報をフェッチし、現在のブランチにマージする
git pull [リモート名][ブランチ名]

git pullコマンドは、リモートリポジトリの最新の変更をローカルブランチに取り込むための方法です。git fetchコマンドとgit mergeコマンドを組み合わせた操作を一度に行うものとなっております。

git merge

基本形

git merge [ブランチ名]

主なオプション

# マージ操作中に問題が発生した場合に、マージを中止するコマンド
git merge --abort

git mergeコマンドは、別のブランチの変更を現在のブランチに統合するためのコマンドです。通常は、複数のブランチで並行して作業を行い、その結果を一つにまとめるために使用されます。
特にgit mergeについては背景を理解していない未経験の方が多いので実際に練習をしてみるのが一番良いです。細かくは触れませんが、コンフリクトについても学習を進めておけるとベストです。

git pull git fetch git mergeの違い

こちらのコマンドは混同される方や、違いがわからない方が多く見受けられたので違いについてもまとめておきます。間違いがあったらご指摘ください。

コマンド 説明 影響 主な用途
git fetch リモートリポジトリの最新情報を取得し、ローカルリポジトリを更新 作業ツリーや現在のブランチに影響はない リモートの変更を確認し、ローカルを更新するため
git merge 現在のブランチに別のブランチの変更を統合 現在のブランチ(統合先のブランチ)が変更される ブランチの変更を統合して一つの履歴にするため
git pull リモートリポジトリの最新情報を取得し現在のブランチにマージ 現在のブランチが変更される リモートの変更をすぐに反映するため

Discussion