ページ

2010年9月26日日曜日

git よく使うコマンド


■ 初期設定

・コミットログに追加される利用者の情報を設定する。
git config --global user.name "<ユーザーID>"
git config --global user.email "<メールアドレス>"
git config --global color.ui "auto"

・既存のリポジトリの複製を作る。
git clone <複製したいリポジトリのURL>


■ コミット・プッシュ・プル

・現在のワークツリーの状態を確認する。
git st

・ローカルのブランチにコミットする。
git add -A && git commit -m "コメント"

・コミットをリモートのブランチにプッシュする。
git push

・リモートの変更をローカルに取り込む
git pull



■ 元に戻す

・ワークツリーを HEAD の状態に戻す。
git reset --hard
git clean -fd

・ローカルブランチのコミットを取り消す
git revert <コミットID>

・リモートブランチのコミットを取り消す
git revert <コミットID>
git push

・リモートブランチのコミットを取り消して、別のリモートブランチにプッシュする
git co develop
git revert <コミットID>
git push
git co master
git cherry-pick <コミットID>
git push


■ ブランチ

・すべてのブランチを確認する。
git branch -a

・ローカルに新規ブランチを作成する。
git branch newbranch

・リモートに新規ブランチを作成する
git co -b develop origin/develop ← 作成元になるリモートブランチをチェックアウトする
(作成したブランチがチェックアウトされた状態となる)
git branch newbranch ← チェックアウトしたブランチから新規ブランチを作成する
git co newbranch
git push origin newbranch ← リモートにプッシュする
git fetch ← フェッチして、履歴を取得する
git co develop ← 作成したローカルブランチは、1のブランチを参照しているため、削除してリモートを参照し直す。
git branch -D newbranch
git co -b newbranch origin/newbranch

・ローカルのブランチを削除する
git branch -d newbranch

・ローカルが参照しているリモートブランチを削除する
git branch -r -d origin/newbranch

・リモートブランチを削除する
git push --delete origin newbranch


■ タグ

・すべてのタグを確認する。
git tag

・ローカルに新規タグを作成する。
git tag newtag

・リモートに新規タグを作成する
git co develop ← 対象のブランチをチェックアウトする
git tag newtag ← チェックアウトしたブランチから新規タグを作成する。
git push origin newtag ← リモートにプッシュする

・ローカルのタグを削除する。
git tag -d newtag

・リモートのタグを削除する。
git tag -d newtag
git push origin :newtag



■ マージ

・リモートに作成したブランチから、masterブランチにマージする。
git co master ← masterブランチをチェックアウトする
git merge origin/newbranch ← リモートのマージ元ブランチから、マージする。(fast forward)
(履歴を一本化したい場合は、以下でもOK)
git rebase origin/newbranch
git push ← プッシュする


■ コンフリクトとその解消
git status ← コンフリクトを起こしたファイルを確認する。
git add <ファイル名> ← コンフリクトを修正して、インデックスに追加する。



■ その他のTIPS
・直前のコミットのコメントを修正する
git commit --amend -m "コメント"

・Macの.DS_Storeファイルをignoreに設定する。
echo .DS_Store >> ~/.gitignore
git config --global core.excludesfile ~/.gitignore

・ファイルの1行1行がどのコミットで記録されたかを確認する。
git blame <ファイル名>

・コミット済みのファイルを、リポジトリから消して.gitignoreで除外する
git rm --cached foo.txt
echo 'foo.txt' >> .gitignore
git add .gitignore
git commit -m "コメント"


・ブランチを切り替える際に、既に変更があるとエラーになる為の対策
git stash ← 変更をいったん横に避けておく。
git stash pop ← 横に避けておいた変更を戻す。


・ブランチの作成/変更/マージ履歴を確認
git show-branch


・git では空のディレクトリをリポジトリに含めることはできない為の対策
mkdir empty_directory
touch empty_directory/.gitignore
git add empty_directory/.gitignore

・コミットの履歴の要約だけを確認する。
git log --pretty=short

・コミットごとの変更内容をunified-diffの形で見る
git log -p


・サーバーはsvnで、ローカルでのみgitを利用する
git svn clone <リポジトリのURL> -T trunk --username <ユーザーID> ← svnリポジトリからgitリポジトリを作る
git svn show-ignore >> .git/info/exclude ← svn:ignoreを引き継ぐ
git svn rebase ← svnリポジトリの最新の変更を取り込む。
git svn dcommit ← 変更をsvnにコミットする。

git svn dcommit --rmdir ← 空のディレクトリを削除する場合

git svn log ← svnの修正履歴を最終確認する。


0 件のコメント:

コメントを投稿