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

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

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

工作HardwareHub ロゴ画像 (Laptop端末利用時)
工作HardwareHub ロゴ画像 (Mobile端末利用時)

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

モーダルを閉じる

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

モーダルを閉じる

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

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

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

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

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

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

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

目次

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

    0
    ステッカーを贈るとは?

    履歴にタグを付与する (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"]
    +
    
    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 Ninja3/15/2022に更新
        いいねアイコン画像0
      • GitLab インストール手順 (CentOS 6)
        サムネイル画像-b5d7f621b3
        Git を用いたプロジェクト開発を複数人で行う場合、サーバーでレポジトリ管理を行えると便利です。何らかの事情で GitHub や Bitbucket を利用できない場合は、サーバーを構築して GitLab をインストールします。ここでは特に CentOS 6 の場合についてインストール手順をまとめます。 コマンドを実行するサーバーの用意 個人的な検証用途であれば Vagrant や Virtual...
        あめふりさんあめふりさん3/6/2021に更新
        いいねアイコン画像0