Git実践コマンド

2020/09/15

今回は、実践でたまに使いそうなGitコマンドについてエントリーしたいと思います。

ちなみに、Gitの基本コマンドは以下のページでまとめました。

 

INDEX

 

リモートリポジトリ(git remote)


# 名前とリモートリポジトリを関連付けする(リモートリポジトリの追加)
$ git remote add [username] [remote repository PATH]

# 上記の実例
$ git remote add origin http://xxxxxx.xxx/xxxx

# リモートリポジトリを一覧表示
# -v オプションでURLなど詳細表示
$ git remote -v

# URLを変更
$ git remote set-url origin [変更先のURL]

# 上記の実例
$ git remote set-url origin https://xxxx@bitbucket.org/xxxx/xxx.com.git

 

別のブランチのコミットを現在のブランチにコピー(cherry-pick)

使い方

# developブランチにチェックアウト
$ git checkkout develop

# コミット履歴を確認
$ git log -5 --oneline

# stagingブランチにチェックアウト
$ git checkout staging

# developブランチの特定のコミットをコピー
$ git cherry-pick [commit id]

 

コンフリクトが発生したら

依存関係があるファイルがあった場合、コンフリクトが発生します。

とりあえず、取り消すコマンドはオプションで --abort を打ちます。


# cherry-pickをやめる
$ git cherry-pick --abort

 
実演だとこんな感じ。

 

コミットログの確認(git log)


# コミットログを参照
$ git log

# コミットログの先頭7桁のコミットIDを表示
# "q" で終了
$ git log --oneline

# 個人的によく使うコマンド
$ git log -5 --oneline

# 特定のファイルの変更履歴を確認
$ git log -p path/to/file.txt

# gitで未プッシュのコミットを確認する(masterの場合)
$ git log origin/master..master

 

差異を表示(git diff)


# インデックスとワーキングツリーの差異を表示
$ git diff
$ git diff ファイル名

# HEADとインデックスの差分を表示
$ git diff --cache

# コミット間の差異を表示
$ git diff [commit id 1] [commit id 2]

 

ブランチの変更・Add前の変更の取り消し・コンフリクト対応(git checkout)


# ブランチを変更する
$ git checkout ブランチ名

# 特定のファイルの変更を取り消す
# add も commit もしていないファイルが対象
$ git checkout ファイル名

# コミットされた過去のファイルを復元する
$ git checkout コミットID ファイル名

# マージでコンフリクトしたときに情報を指定してファイル内容を採用
$ git checkout --ours ファイル名

# マージでコンフリクトしたときに下方を指定してファイル内容を採用
$ git checkout --theirs ファイル名

 

サブモジュール(git submodule)

「外部のリポジトリを現在のプロジェクトに追加」するためのコマンドです。


# サブモジュールの参照
# 現在のサブモジュールを確認
$ git submodule

# サブモジュールの追加
$ git submodule 外部リポジトリのパス
# 実例 Laradockをサブモジュール
$ git submodule add https://github.com/laradock/laradock.git

 

コミットの詳細を見る(git show)

コミットの詳細を見るコマンドです。


# HEADの差分を見る
$ git show

# 他のコミットを見る
$ git show コミットID

 
また気づいた箇所があれば順次、追加していきます。

以上です。

 

【改訂新版】Gitポケットリファレンス

Gitの初歩的なことは一通り勉強していて、さらにもっとGitを使いこなしたいと思っている人におススメの本です。中身は基本的にリファレンスです。ただ、コマンドレベルの説明だけではなく、「使い方」や「エラーと対処法」など実用レベルで記述されています。普段のルーチン作業だけでは、すぐに細かいコマンドとか忘れがちになります。何かあったときのための備えとして、または辞書としてお手元に置いておくのもありかと思います。

Amazonで詳細を見る

オススメ

 

本庄マサノリ

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら

>> Twitter をフォローする

 

-環境構築