[備忘録]超基本 Gitコマンド

sourcetreeも良いけど、コマンドを華麗に叩けるようになりたいです。
開発中によく使うコマンドを備忘録的にまとめました。

リポジトリを作成する

# 新規のリポジトリを開く
# ルートディレクトリを指定できる
$ git init ~/myproject/new_app
# リポジトリを指定しなかった場合は
# コマンドを実行したディレクトリがルートになる
$ git init

# 既存のリポジトリを複製する
# git-hub等のリモートサービスから
$ git clone git@github.com:xxxxx/sample_app.git
# リポジトリを削除する時はルートディレクトリを削除すればよい。

変更点をコミットする

# git add でコミット対象を指定
# git commit でコミット
# git commit -m "コミットメッセージ"

# 変更したファイルを全て
$ git add .
$ git commit -m "first commit!"
# 次のようにすると1行で書ける
$ git commit -a -m "first commit!"

# コミット対象ファイルを指定
$ git add app/models/user.rb
$ git commit -m "add validation"

# 既存ディレクトリをリポジトリ化
$ cd <ディレクトリパス>
$ git init
$ git add .
$ git commit -m "initialize"

# 直前のコミットメッセージを修正する
$ git commit --amend -m "modify messeage"

リモートリポジトリにプッシュする

# リモートリポジトリを追加
$ git remote add origin <url>

# リモートにプッシュ
$ git push origin master

ブランチを切る

# 新しいブランチ
$ git checkout issue1

# 既存のブランチに移動
$ git checkout issue2

# 次のようにすると作成と移動が同時に行える
$ git checkout -b issue3

# ローカルブランチの一覧取得
$ git branch

# ブランチ名の変更
$ git checkout issue2
$ git branch -m issue4

# ブランチの削除
$ git branch -d issue1

変更をmasterにマージする

# ブランチに移動し、変更をコミット
$ git checkout issue1
$ git commit -a -m "commit nmessage"

# masterに移動し、差分をマージ
$ git checkout master
$ git merge issue1
$ git push origin master // リモートにプッシュ

# リモートの最新をローカルに反映する
$ git fetch
$ git merge origin/master
# git pull でも可

コミットせずに、一時的に作業内容を保存したい

# コミットしないとブランチを移動できないので
$ git stash

# stashの一覧
$ git stash list

# 直前のstashを適用
$ git checkout branch
$ git stash pop

# stash一覧を削除
$ git stash clear

ブランチの状態を知りたい

# どこのブランチにいるか知りたい
# 変更されたファイルを知りたい
$ git status

# 変更されたファイルの詳細
$ git diff

ファイル操作

# ファイル名変更
$ git mv before_filename after_filename

# 特定のファイルorディレクトリの削除
$ git rm filename
Pocket

宮田真也
Webプログラマー。 1982年京都府城陽市生まれ。東京都練馬区在住。社会学系の大学・大学院を卒業後、会社員として約6年勤務。退職後、プログラミングを学び、畑違いのWebプログラマーとして独立し、現在に至る。