2014年04月11日

gitのインストールとGitHubへpushしてみた時のまとめ

まだ細かいところは分からない所が多い。
理解が深まったら加筆修正していきます。

gitのインストール

MAC OSX Homebrew

$ brew install git
$ git --version
  git version 1.8.5.2 (Apple Git-48)

Windows

gitの初期設定

ユーザー情報

$ git config --global user.name "ユーザー名"
$ git config --global user.email "メールアドレス"

~/.gitconfigへ書き込まれます。
この情報は全てのcommit logに残ります。

First Commit

$ mkdir project
$ cd project
$ git init
$ touch README
$ git add .
$ git commit -m "First commit"

git用語

  • ワークツリー
    • 現在編集している作業ファイル郡
  • インデックス(ステージ)
    • リポジトリへコミットする前の一時領域
  • リポジトリ
    • バージョン管理の履歴が保存されている貯蔵庫
  • リモートリポジトリ
    • インターネット上や他のネットワーク上にあるリポジトリ
  • master
    • ブランチの名前。基本はmaster。別のブランチに切り替えられる。
  • origin
    • リポジトリの場所(URL)の別名
      慣習的にこれが多いが別に何でも良い。多分「original」から来ていると思われる。

よく使うコマンド

ローカル

コマンド 説明
git init リポジトリを作成する。
git status ステータスを表示する。
git log コミットログを表示する。
git log --graph コミットログを表示する。(グラフ表示)
git reflog コミットログを表示する。(resetで消したものも見れる)
git show コミットログの詳細を表示する。
git revert <commit> 指定したコミットの内容を打ち消すコミットを作成
git blame ファイルの各行がどのコミットのものなのかを表示する。
git add <file> 変更をインデックスへ登録する。(ファイル指定)
git add . 変更をインデックスへ登録する。(変更を全て登録)
git add -p 変更を選択しインデックスへ登録する。(ファイルの一部の変更のみ登録)
git commit インデックスからリポジトリへ変更をコミットする。エディタが起動しコミットメッセージを入力する。
git commit -m "メッセージ" メッセージ付きでコミットする。
git commit --amend コミットメッセージを修正する。
git reset <file> 直前にコミットしたファイルをインデックスから取消す。
git reset HEAD^ 直前のコミットを取消す。
git reset --hard HEAD^ 直前のコミットを取消す。(作業ディレクトリの内容も元に戻る)
git checkout <filename> 変更の取り消し
git checkout . 変更を全て取り消し
git diff ワークツリーとインデックスの差分を確認
git diff --cached インデックスと最新コミットの差分を確認
git diff HEAD ワークツリーと最新コミットの差分を確認

リモート操作

コマンド 説明
git clone <URL> <directory> リポジトリのコピーを作成する。
git remote リモートリポジトリ一覧を表示
git remote -v リモートリポジトリの詳細を表示
git remote add <name> <url> リモートリポジトリを追加
git pull リモートリポジトリの変更をローカルへマージする(fetch+merge)
git fetch リモートリポジトリの変更履歴を取得する。
git merge <\branch> 指定したブランチを現在のブランチへマージする。
git push リモートリポジトリへ変更を反映する
git rebase -i HEAD~2 リモートへpushしたコミットを削除する。エディタでログ編集して保存。その後 git push origin +master

ブランチ操作

コマンド 説明
git branch 現在のブランチ一覧を表示
git branch <branch> 現在のブランチの作成
git branch -m <oldbranch> <newbranch> ブランチ名の変更
git branch -d <branch> ブランチの削除
git checkout <branch> ブランチの切り替え
git checkout - 一つ前のブランチへ移動
git checkout -b <branch> ブランチを作成して、切り替える

GitHubの設定

  1. GitHubでアカウントを作成。
  2. GitHubへSSHKeyを登録しておく。

  3. GitHubへリポジトリを作成する。

GitHubに公開

  1. リモートリポジトリにGitHubを追加

    $ git remote add origin git@github.com:user/repo.git
    
  2. push

    $ git push origin master
    

    覚え方:gitでpushする。リモート(orign)へローカル(master)を。

  3. cloneでGitHubからコピーを取得する。

    $ git clone git@github.com/user/repo
    

gitの詳細設定

ユーザー情報

~/.gitconfig

[user]
  name = ユーザー名
  email = メールアドレス

※GitHubのリモートリポジトリで、メールアドレスを公開したくない場合

「username@users.noreply.github.com」を設定する

GitHubページにて設定変更が必要。

以下の箇所のチェックボックスにチェックする

Keep my email address private. We will use username@users.noreply.github.com when performing git operations and sending outgoing email on your behalf.

エディタ

commitメッセージ入力時に起動するエディタの設定

$ git config --global core.editor vim

Diff

デフォルトのgit diffは、パッチ形式。

vimdiffへ変更する方法

やってないけど、MACで「p4merge」を使う場合

その他

git status、git diffなどの出力をカラー表示にする。

$ git config --global color.ui auto

MACのgitで日本語ファイル名を扱う

git config --global core.precomposeunicode true

設定の確認

git config -l

リポジトリの別名を確認する場合にも使用。

githubでpushする度に毎回パスワードを聞かれる場合

remote add した時にhttpsを使ったのが原因らしい。

git remote add origin https://github.com/xxxxx/xxxxx.git

以下で変更する。

$ git remote set-url origin git@github.com:xxxxx/xxxxx.git

参考



blog comments powered by Disqus