モーダルを閉じる工作HardwareHub ロゴ画像

工作HardwareHubは、ロボット工作や電子工作に関する情報やモノが行き交うコミュニティサイトです。さらに詳しく

利用規約プライバシーポリシー に同意したうえでログインしてください。

Git 中級者になるためのコマンド集

モーダルを閉じる

ステッカーを選択してください

お支払い手続きへ
モーダルを閉じる

お支払い内容をご確認ください

購入商品
」ステッカーの表示権
メッセージ
料金
(税込)
決済方法
GooglePayマーク
決済プラットフォーム
確認事項

利用規約をご確認のうえお支払いください

※カード情報はGoogleアカウント内に保存されます。本サイトやStripeには保存されません

※記事の執筆者は購入者のユーザー名を知ることができます

※購入後のキャンセルはできません

作成日作成日
2015/05/26
最終更新最終更新
2023/06/08
記事区分記事区分
一般公開

履歴にタグを付与する (git tag)

一覧表示

タグだけを一覧表示

$ git tag

ログにタグ情報を付与して表示

$ git log --decorate=full

直近のコミットにタグを付与

コメントあり

$ git tag -a v1.0 -m 'コメント'

コメントなし

$ git tag v1.0

過去のコミットにタグを付与

履歴を調査

$ git log --oneline
9d49dd9 step-1 static phone list
96a9b5b step-0 bootstrap angular app
c6ac3f3 chore(bower): update jquery dependency to ~2.1.1

タグを付与

$ git tag -a v1.0 -m 'コメント' 9d49dd9

タグを削除

$ git tag -d v1.0

タグを指定して情報を表示

$ git show v1.0

リモートレポジトリにタグ情報を送る

タグを送信しない

$ git push origin

特定のタグを送信

$ git push origin v1.0

すべてのタグを送信

$ git push origin --tags

タグを指定してチェックアウト

$ git checkout v1.0
$ git checkout -f v1.0  ←forceオプション(変更などをすべて破棄)

歴史の長いレポジトリを素早くクローンする (git clone --depth)

すべての履歴が必要ではない場合は clone 時に --depth で数値を指定することで取得する履歴の個数を指定できます。例えば直近のコミットの履歴だけでよい場合は以下のようにすると他の履歴を取得しない分だけ素早く clone が完了します。

$ git clone --depth 1 https://github.com/xxxxx/yyyyy

Git のコメントを修正 (git commit --amend)

誤ってコミットしてしまった直前のコメントを修正するための最も簡単な方法は、以下のコマンドを発行することです。

$ git commit -m '修正版コメント' --amend

ちなみに、コミットファイル等に誤りがある場合は以下のようにします。

$ git reset --soft HEAD^

コミット直前に戻ります。

リモートレポジトリを追加 (git remote add)

Git レポジトリは複数のリモートレポジトリを参照できます。例えば、当初あるサーバのリモートレポジトリで開発が進められており、ある時点で別のサーバのリモートレポジトリに開発の主体が移動になった場合、両方のリモートレポジトリを参照して push することで当初のレポジトリも最新の状態に保つことができます。

git remote add old_remote_repo https://github.com/harubot/micromouse.git
git push old_remote_repo master

fork されたレポジトリの feature/fcl-distance ブランチを local で利用する場合

git remote add marlinstrub https://github.com/marlinstrub/openrave.git
git fetch marlinstrub
git checkout marlinstrub/feature/fcl-distance

特定のファイルの変更履歴を追跡する (git log --follow)

単一ファイルしか対象にできません。基本コマンドは 'git log' に '--follow' を付与するだけです。

$ git log --follow sample.txt

変更内容の詳細を表示するためには '-p' も付与します。

$ git log -p --follow sample.txt

表示個数を制限するためには '-n' を付与します。以下は 10 に制限した場合です。

$ git log -p -10 --follow sample.txt

コミットを相殺するコミットを生成 (git revert)

$ git revert HEAD

または

$ git revert 6ccfd1842744

など。

コミット履歴修正 (git rebase)

まとめようと思ったら、とても丁寧なサイトがありました。忘備録として記載。

ローカルに残存するリモートレポジトリから削除されたブランチを削除 (prune)

$ git fetch --prune

リモートブランチをローカルにチェックアウト

実は checkout するだけです。

$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/mybranch

$ git checkout mybranch

$ git branch
  master
* mybranch

ブランチの作成について確認

git branch mybranch
git checkout mybranch

上記コマンドは以下のコマンドと同じ意味をもちます。

git checkout -b mybranch

別のブランチからチェックアウト

git show other_branch:somefile.txt
git checkout other_branch -- somefile.txt
git checkout other_branch -- somedir

--other_branchsomedirsomefile.txt が同名の場合に以下のようなエラーになるのを回避するためのセパレータです。名前が異なる場合は必要ではありません。

fatal: ambiguous argument 'xxx': both revision and filename
Use '--' to separate paths from revisions, like this:

push が完了していないコミットを確認

git log origin/master..master

特定の対象ファイルを git 管理対象から除外

例えば Maven や Gradle といったビルドツールを用いているにも関わらず、Eclipse 等の特定の開発環境に依存した設定ファイルが git 管理対象に追加されている場合、管理対象ファイルを見直すことが理想ですが、以下のコマンドで一時的に除外および除外の解除を設定できることを知っておくとよいです。

git update-index --skip-worktree .classpath
git update-index --no-skip-worktree .classpath

除外されているファイル一覧

$ git ls-files -v | grep ^S
S .classpath

Git 管理されていないファイルやディレクトリを削除 (git clean)

git clean -ffdi

他のレポジトリをサブディレクトリとして利用 (git submodule)

git submodule を利用して、他レポジトリを参照するレポジトリを作成します。

新規作成

レポジトリの作成

mkdir myrepo
cd myrepo/
git init
touch sample.txt
git add .
git commit -m 'init'

サブモジュールの追加

git submodule add https://github.com/twbs/bootstrap
git add .
git commit -m 'add submodule'

以下のようになります。

$ git log -p -1
commit 6436aacb7e476cad4450b7527c471e4f5bf99b2d
Author: username <username@example.com>
Date:   Wed May 23 19:29:53 2018 +0900

    add submodule

diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..d9fccea
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "bootstrap"]
+
Likeボタン(off)0
詳細設定を開く/閉じる
アカウント プロフィール画像

GitHub Actions とか CI/CD が好きです。

記事の執筆者にステッカーを贈る

有益な情報に対するお礼として、またはコメント欄における質問への返答に対するお礼として、 記事の読者は、執筆者に有料のステッカーを贈ることができます。

>>さらに詳しくステッカーを贈る
ステッカーを贈る コンセプト画像

Feedbacks

Feedbacks コンセプト画像

    ログインするとコメントを投稿できます。

    ログインする

    関連記事

    • GitLab CI/CD Runner および .gitlab-ci.yml の設定例
      サムネイル画像-297f6f36b5
      GitLab CI/CD について使い方を把握してみます。 検証用 GitLab の準備 簡単のため docker イメージを利用します。マウントしたディレクトリは、Docker エントリーポイントから実行される Chef によってプロビジョニングされます。 docker run \ --hostname localhost \ --publish 10443:443 --publish 10
    • kubernetes で GitLab および GitLab Runner を実行する設定サンプル
      サムネイル画像-6e48d2b47c
      GitLab CI/CD 設定について、GitLab および GitLab Runner すべてを k8s 内で実行するサンプルを記載します。簡単のため minikube を利用します。 minikube config set memory 8192 minikube config set cpus 4 minikube start minikube ip 192.168.99.103 minik...
      AWS NinjaAWS Ninja2/15/2022に更新
      いいねアイコン画像0
    • GitLab インストール手順 (CentOS 6)
      サムネイル画像-b5d7f621b3
      Git を用いたプロジェクト開発を複数人で行う場合、サーバーでレポジトリ管理を行えると便利です。何らかの事情で GitHub や Bitbucket を利用できない場合は、サーバーを構築して GitLab をインストールします。ここでは特に CentOS 6 の場合についてインストール手順をまとめます。 コマンドを実行するサーバーの用意 個人的な検証用途であれば Vagrant や Virtual...
      あめふりさんあめふりさん2/6/2021に更新
      いいねアイコン画像0