decadence

個人のメモ帳

Pro Git

そういえばGit - Bookを読んで途中でやめていたのですが.
まぁオープンソースとかはまだしも,自分で使う分ぐらいの資料まで読んでテキストとしてまとめていたので,こちらにも貼付けておこうと思います.

まとめたのは1~4章分ぐらい.
続きの5章のGitでの分散作業以降はまた気が向いたら...


使い始める

git config -l :show config
git config --global user.name "na me"
git help 
git config --global alias.unstage=reset HEAD -- :エイリアスの作成
git tag -a v1.4 -m 'my version 1.4' :注釈付きタグ付け
git tag v1.4 :軽量版タグ

untracked - unmodified - modified - staged :ファイルの状態

Gitの基本

git clone git://~ :リポジトリのコピー
git status :どの状態にあるのかを確認
git add  :fileをstagedにする
git diff :変更点のいずれを使うかを決定
git diff --staged :以前の差分(--cached)
git commit -m "message"
git rm  : ファイルの追跡対象からはずす
git rm --cached  : 既にステージングしてしまったファイルを除外(実ファイルは削除されない)
git mv file_from file_to :change file_name
git log -p -2 :各コミットのdiffを,直近の2エントリ出力
git log -stat :ファイルの一覧と変更されたファイル数,追加削除された行数の表示
git log --pretty=outline(format) :commitの概要のみ表示(形式を決めて表示)
git log --since=2.weeks
git commit --amend :直近コミットのやりなおし(messageのミスなど)
git reset HEAD^ :直近コミット前まで戻る(^の数分戻る)
git reflog :HEADのログを表示
git reset HEAD@{1} : 上記ログの1番目へ戻る
git checkout --  :ファイルへの変更の取り消し

共同作業をする(リモートでの作業)
cloneした際にはremote-nameはoriginとなる

git remote add [remote-name] git://~ :リモートレポジトリの追加
git remote -v :名前に対応するURLを表示
git remote : 存在するremote-nameを表示
git fetch [remote-name] :リモートレポジトリからデータを取得
git pull : 最初にクローンしたサーバーからデータを取得
git push [remote-name(origin))] [branch-name(master)] :
git remote show [remote-name] :特定のリモート情報を表示
git remote rename name_from name_to

//30ページ
Gitのブランチ機能
git branch branch_name : 新しいブランチ(ポインタ)を作成する
git checkout other_branch : ブランチの切り替え=HEADの指す位置が移動する
git checkout -b other_branch : 新しいブランチを作成し切り替える

ある段階においてmasterを残しておき,問題が発生したらmasterから修正用ブランチを作成する
修正版(hostfix)が出来たら,マージしてリリースする

git checkout master
git merge hostfix : masterがhostfixを取り込む形になる
git branch -d postfix : postfixブランチの削除
git branch : branchの一覧を表示,*現在checkoutされているブランチ
git branch -v : 各ブランチにおける直近のコミットを表示
git branch --merged : マージ済みのブランチの表示(この内*の無いものは削除して良い)
git fetch origin : originが指すサーバーを探し,ローカルデータベースを更新
git push [remote(origin)] [branch]
git checkout --track [remotename]/[branch] :origin以外にあるブランチやmaster以外のブランチを追跡させる
git push [remotename] :[branch] : リモートブランチを削除する