IT井戸端会議

IT井戸端会議

インフラ、ネットワーク、アプリケーション開発、IT界隈の話等々を東京都千代田区界隈から発信します。

よく使うgitコマンド

git init [<ディレクトリ名>]

リポジトリの初期化を行います。 対象のディレクトリを git の対象とする場合に実行します。 コマンドを実行すると対象のディレクトリ配下に .git ディレクトリが作成され、その中に各種設定ファイルが設置されます。

.
└── .git
    ├── HEAD
    ├── branches
    ├── config
    ├── description
    ├── hooks
    │   ├── applypatch-msg.sample
    │   ├── commit-msg.sample
    │   ├── post-commit.sample
    │   ├── post-receive.sample
    │   ├── post-update.sample
    │   ├── pre-applypatch.sample
    │   ├── pre-commit.sample
    │   ├── pre-rebase.sample
    │   ├── prepare-commit-msg.sample
    │   └── update.sample
    ├── info
    │   └── exclude
    ├── objects
    │   ├── info
    │   └── pack
    └── refs
        ├── heads
        └── tags

ディレクトリ名を指定していない場合、現在位置しているディレクトリが管理対象として初期化されます。

【実行例】

$ cd /path/to/my/codebase/
$ git init
Initialized empty Git repository in /path/to/my/codebase/.git/

git status

リポジトリの現在のブランチや、追加・変更・削除されたファイルなどといった情報を確認することができます。 個人的には、git addgit commit する際に確認することが多いです。

【実行例】

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   print.rb
nothing added to commit but untracked files present (use "git add" to track)

git --global


git --system


git add .gitignore


git clone


git branch

ブランチ一覧の確認や現在位置しているブランチを確認することができます。 (アスタリスク(*)が付いているものが現在位置しているブランチです。)

【実行例】

$ git branch
  20150701
* master

git branch <ブランチ名>

ブランチの生成

指定した名前でブランチが生成されます。


git checkout -b master


git checkout


git checkout <ブランチ名>


git clone gitrepo <リポジトリ名>


git checkout -b <ブランチ名>


git commit --amend

コミットを再度やり直します。


git config [--system|--global] user.email <メールアドレス>

メールアドレスを設定します。 --system を指定した場合、/etc/gitconfig に保存され、システム共通の設定として適用されます。 --global を指定した場合、~/.gitconfig に保存され、ユーザ個別の設定として適用されます。


git config [--system|--global] user.name <ユーザ名>

ユーザ名を設定します。 --system を指定した場合、/etc/gitconfig に保存され、システム共通の設定として適用されます。 --global を指定した場合、~/.gitconfig に保存され、ユーザ個別の設定として適用されます。


git diff HEAD

ワークツリーと最後のコミットの差分を表示します。


git diff <ファイル名1> <ファイル名2>

指定したファイルの差分を表示します。


git log

コミット履歴を確認する際に使用します。

-p <数字> オプションを使用すると、指定した<数字>の件数分のみコミット履歴が表示されます。

【実行例】

$ git log
commit 79077d0f6cd0f803560e303edaa9a0e28893bbb2
Merge: 92882ea c0183cf
Author: ******
Date:   Fri Jun 26 04:36:20 2015 +0900

    Merge pull request #1 from ******/branch-demo
    
    はじめてのコミット

...

git merge <ブランチ>

指定したブランチを現在のブランチにマージします。


git push { or } <ブランチ名>

【実行例】

git push origin master

git rebase -i HEAD~~

コミットを修正します。


git rebase -i <ブランチ名>~<数字>


git remote

リモートサーバの一覧が表示されます。 何も設定していない場合、origin のみが表示されます。 git remote add で追加することができます。

【実行例】

$ git remote
origin

git remote -v

設定されているリモートサーバの URL など詳細情報を確認する際に使用します。

【実行例】

$ git remote -v
origin  <GitHub Clone URL> (fetch)
origin  <GitHub Clone URL> (push)

git remote add リモートサーバを追加します。 指定した を使用してコマンド実行等をできるようになります。 設定した値は、git remote -v コマンドで確認できます。


git remote set-url origin

origin の URL を指定した に変更します。 設定した origin URL は、git remote -v コマンドにより確認することができます。


git reset --soft HEAD^

一つ前のコミットを取り消します。 ワークツリーについては、何もしません。


git reset --hard HEAD^

一つ前のコミットを取り消します。 ワークツリーについても、取り消します。