search
LoginSignup
4

More than 1 year has passed since last update.

posted at

updated at

個人的に便利だと思ったgitコマンド集

背景

完全独学で触ってきたgitですが、流石に体系的に勉強した方がいいだろうと思って、勉強しました。
そこで学んだ便利なコマンドを記載していきます。なお、gitを使っている方々にとっては当たり前の内容となっております。
完全に個人的な備忘録です。

ちなみに勉強した本はGitHub実践入門です。まだ読み途中なので、読み終えたら追記もしくは別記事で投稿します。

コマンド集

コミットメッセージ

いきなりコマンドではなくてすみません笑。コミットメッセージには、フォーマットがあるらしく、それに則った方が今後便利だなと思いました。
1行目: コミット内容のようやく
2行目: 空白行
3行目以降: コミット内容の詳細内容や背景など

過去のコミットメッセージ1行目のみ表示

git log --pretty=short

ファイルの差分表示

git log -p [file name]

ワークツリーとステージ領域の差分確認

git diff

ワークツリーと最新コミット領域の差分確認

変更したファイルを全てステージ領域に追加すると、 git diff では何も差分が表示されなくなる。
最新コミットと比較したい時には、下記のようなコマンドを実行する。

git diff head

ブランチの流れを視覚的に表示

git log --graph

新しいブランチを作成し、そちらに切り替える

git checkout -b [branch name]

現在のリポジトリでの作業ログ

git reflog

ブランチを戻す

git reset --hard [hash value]

*ハッシュ値については、 git log --graphgit reflog などを使って確認すること
*戻した後に、 git reflog などを使ってハッシュ値を取得できれば、再度戻す前の状態にも戻れる。

ブランチのマージ(及びコンフリクトの確認)

マージ先のブランチ(例えば、masterブランチ)にいる状態で実行する。

git merge [branch name]

*事前にマージ元、マージ先のgit pull origin [branch name]などをしておき、ブランチを最新化しておく。
*コンフリクトが起きたら、対象ファイルを開き、修正して再度ステージング及びコミットする

直前のコミットメッセージを修正

git commit --amend

複数コミットをまとめる

直前2つのコミットをまとめたい場合

git rebase -i head-2

*ここのheadは最新コミットを指す。

pick [hash value] [commit message1] # 最新の1つ手前のコミット
pick [hash value] [commit message2] # 最新コミット

最新コミットの方のpickをfixupに書き換えることで、
1つ手前のコミットにまとめることができる。
コミット後に見つけた軽微なバグ修正などで使う。
なお、改竄方法はgit rebaseコマンド実行時に表示されているので、そちらを読むことでより理解できるだろう。

リモートリポジトリの登録

git remote add origin git@github.com:hoge/huga.git

*originという識別子は今後、git@~として認識されるようになる。
*なお、push時に-uオプションを付けることで上流ブランチとして登録させることができる
例、 git push -u origin master
ちなみに上の例は、origin(リモートリポジトリ)のmasterブランチにpushしているという意味。
masterの部分を別のブランチ名にすると、そのブランチにpushされる。
そのブランチが存在しない場合は、作成される。

リモートリポジトリを含めたブランチの確認

git branch -a
  • master remotes/origin/master リポジトリにもよるが、おそらく上記のように表示される。 上記では、ローカルリポジトリのmasterブランチにいて、リモートリポジトリにはmasterブランチのみが存在しているという意味。 remotesが(ローカルではなく)リモートリポジトリを指しており、originは先ほど指定した特定のリモートリポジトリを指している。

リモートリポジトリのブランチをチェックアウトする

リモートリポジトリにあるブランチを元に手元のローカルリポジトリにブランチを作成する

git checkout -b develop origin/develop

*リモートリポジトリにdevelopブランチがある前提

最新のリモートリポジトリの情報をローカルリポジトリに反映

例えば、別の開発者によってリモートリポジトリに変更が生じた場合、下記コマンドでそれをローカルリポジトリにも反映させる。

git pull
# もしくは
git pull origin develop # originのdevelopの変更をローカルに反映

リモートリポジトリのブランチが変更されていた場合、このコマンドでローカルリポジトリにもその変更が反映される。
なお、変更がかぶっていた場合、コンフリクトが発生する。

直前のコミットまでワークツリーを戻す

これで何かやらかしても直前まで簡単に戻せる。

git reset --hard HEAD

ローカルブランチの削除

整理のためにも不要になったローカルブランチは削除しておきたい。

git branch -d [branch name]

対象ブランチをローカルでチェックアウトしている状況ではエラーが発生するので、別ブランチにチェックアウトしておくこと。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4