これすごい便利だ!でも慣れるまでが大変そう。使いながら覚えよう。
以下勉強メモ。
==========================
設定
git config --global user.name 'hoge'
git config --global user.email 'hoge@example.com'
git config --global color.ui true
// 設定一覧
git config -l
// ヘルプ
git config --help // または git help config
設定が終わったら
git init
===========================
git add index.html
git commit
git log
===========================
// コミットのidとメッセージだけを一行で表示
git log --oneline
// コミットで何が変更されてたか確認
git log -p
// どのファイルが何箇所変更されたかを確認
git log --stat
===========================
git status
// addしたファイルを変更前に戻す
git checkout -- index.html
==========================
// addしたファイルの変更箇所がわかる
git diff --cached
==========================
//ファイル操作
git rm
git mv
==========================
// git管理に含めない設定
vim .gitignore
// *.logと書けばlogファイルを無視
// サブディレクトリの中でのみ適用したいものはそのディレクトリに.ignoreを作る
==========================
直前のコミットを変更する
git commit --amend
コミットした後でインデントだけ修正したりしてまたコミットするとログが汚れる
そういうときはgit commit --amendすればおk
=========================
過去のバージョンに戻る
git reset --hard HEAD // 直前のコミット
git reset --hard HEAD^ // 前の前
git reset --hard 12da0899e // idのコミット(最低7桁?)
//やっぱり戻らなくてもよかったーとかいうとき
git reset --hard ORIG_HEAD
// これで戻れるのは直前のgit reset --hardまで
=========================
ブランチ
// ブランチ一覧を表示
git branch
// ブランチを作成
git branch test
// ブランチを変更
git checkout test
// ブランチをマージする(testブランチをmasterブランチにマージする)
git merge test
// ブランチを削除
git branch -d test
// ブランチの作成と変更を同時に行う
git checkout -b hogehoge
==========================
コンフリクトの解決
hogehogeブランチとmasterブランチで同じファイルを修正して
masterブランチでhogehogeブランチをマージするとコンフリクトが発生する
コンフリクト箇所を修正して保存、コミットすればおk
==========================
タグを使う
// タグをつける
git tag v0.9 12da0899e // タグ名、コミットidの順番
直近のコミットにタグをつけるときはコミットid省略可能
// タグの一覧を表示
git tag
// タグを削除
git tag -d タグ名
==========================
エイリアス
git config --global alias.co checkout // co = checkout
git config --global alias.st status // st = status
// エイリアスの確認
git config -l
==========================
共有リポジトリ(ディレクトリourweb.git)
// リポジトリ作成
git init --bare
// 共有リポジトリの登録(originて名前が慣例)
git remote add origin path/ourweb.git
// 共有リポジトリの削除
git remote rm origin
// originにmasterブランチをプッシュ
git push origin master
// 共有リポジトリの中身を複製
git clone path/ourweb.git myweb2
// 共有リポジトリの内容をマージする
git pull origin master
// コンフリクトの解決
Aさんが修正してプッシュしたファイルをBさんもいじっていた
Bさんが気づかずpush→エラーが出てプッシュできない
git pull origin master
マージのときと同じくコンフリクトが起こる
修正してコミット→プッシュ