N0guch1.GitHub.io


home > Gitの使い方 Project maintained. GitHub Pages — by n0guch1

Gitの使い方


〜Gitとは〜

バージョン管理システムです。
他にもSVN(Subversion)と言ったバージョン管理システムがあります。

〜Gitインストール〜

Macのターミナルで以下コマンドを実行するだけです
※HomeBrewが入っていない場合はこちらを参照 : http://qiita.com/is0me/items/475fdbc4d770534f9ef1

  1. 「brew update」を実行
  2. 「brew install git」を実行
  3. 「git --version」を実行してインストールされた事を確認する

WindowsはTortoiseGit(UIでGit操作を可能にするツール)があるのでそちらをインストールすれば、
コンソールとUIでGitが使えるようになります。
TortoiseGitのインストール手順は割愛します。

〜Gitのよく使うコマンド抜粋〜

【基本】

//通常
git clone クローン用URL
//パスワード指定
git clone https://アカウント名:パスワード@hoge.co.jp
//アカウント名やパスワードに@などの記号を使っている場合はPercentEncodeする
//@の場合は%40で入力
git status
git checkout -b 作成するブランチ名 remotes/origin/派生元のブランチ名
//リモートに作成する場合 git push origin 作成するブランチ名
ローカル一覧 : git branch
リモート一覧 : git branch —remote
全て : git branch -a
git checkout ブランチ名
通常 : git branch -d ブランチ名
強制 : git branch -D ブランチ名
//リモートを消す場合 git push origin :ブランチ名
//Git1.7以降のみ : git push --delete origin ブランチ名 でも削除可能
git fetch origin --prune
個別 : git add ファイルパス
全て : git add . または git add --all
git reset HEAD ファイルパス
git add -p
//add対象が出るのでyで追加,nで追加しない
//対象の中でさらに細かくする場合はeで変数する
git commit -m "コミットメッセージ"
通常 : git push origin ブランチ名
強制 : git push -f origin ブランチ名 (強制プッシュは通常使わない)
//追跡ブランチを設定していない場合は「origin ブランチ名」を付ける
//追跡ブランチは-uで設定する
通常 : git log
oneline : git log --oneline
//「q」で終了
git checkout master
git pull
git merge hoge
git push origin master
//すでにあるhogeブランチをmasterにマージしてリモートにプッシュ
git grep "検索単語"
個別 : git checkout ファイルパス
全て : git checkout .
全体 : git log -p
個別 : git log -p コミットNo.
全体 : git diff
個別 : git diff ファイルパス

【コミット修正】

git commit --amend -m “修正コミットメッセージ”
git add ファイル名
git commit --amend
(git commit --amend -m “同時にコミットメーセジを修正する場合”)
//vimが起動するので保存(:wq)を実行
git rebase -i コミットNo. (コミットNo.はgit log --onelineで確認)
//Vimが起動するので修正したいコミットの「pick」を「edit」に修正
git commit --amend -m “同時にコミットメーセージを修正する場合”
git rebase --continue (次に進む)
git rebase -i コミットNo.
git add ファイル名
git commit --amend -m “同時にコミットメーセージを修正する場合”
//vimが起動するので保存(:wq)を実行
git rebase --continue (次に進む)
git rebase -i コミットNo.
git rebase --abort
ファイル変更を残す : git reset --soft HEAD^
ファイル変更を残さない : git reset --hard HEAD^
//^は直前のコミットを対象にする
git reset --hard HEAD@{1}
//{1}の部分はgit reflogで確認する
git revert コミットNo.
git push origin ブランチ名
//差分を相殺したコミットをプッシュしている

【stash】

git stash
リストのみ : git stash list
変更点も確認 : git stash list -p
変更点+ファイル一覧も確認 : git stash show <stash名>
git stash pop stash@{0}
//最新のstashの復活
git fsck --unreachable | grep commit | cut -d\  -f3 | xargs git log --merges --no-walk --grep=WIP
git cherry-pick -n -m1 コミットNo.

【config】

git config --global user.name ユーザー名
git config --global user.email メールアドレス
git config --system http.proxy http://xxxxxxxxxx:ポート番号
git config --system https.proxy http://xxxxxxxxxx:ポート番号
git config --global --list
git config --global --unset-all user.name
git config --global --unset-all user.email
git remote set-url origin GitのURL
git config http.postBuffer 681574400
//上限を650Mに変更

--globalオプションを付けるとGit全体の設定に反映する。
付けない場合はその.gitプロジェクトのみ反映する。

【.git】

git init
rm -rf .git/

【その他】

・よくリモートにミスプッシュしてしまったコミットの取り消しを以下の様に取り消していますが、これはよろしくない(特に複数人で作業してる場合)。

git reset --hard HEAD^
git push -f origin master(ブランチ名)
※-fオプションで無理矢理プッシュしているので他に作業している人が居る場合は影響する

ミスコミットは履歴に残るものなので、無理矢理消そうとせずにrevertをかける事