2014年5月16日金曜日

Gitの操作いろいろ

ユーザーネームを設定する。
$ git config --global user.name "Your Name"

メールアドレスを設定する。
$ git config --global user.email "youraddress@email"

UIに色付けする。
$ git config --global color.ui true

上記の設定を確認する。
$ git config -l

作業ディレクトリに移動して、gitを初期化する
$ git init

Gitのファイル状態遷移は以下のとおり
1. 作業ディレクトリ
2. ステージングエリア(インデックス)
3. リポジトリ(ローカル・リモート)

1→2へ上げるコマンド
$ git add [file name]

2→3へ上げるコマンド
$ git commit [file name]
$ git commit -m "memo~"
メモを残せるので、変更箇所等を記録する。

1→3へ一気に上げるコマンド
$ git commit -am "memo~"

履歴を見る
$ git log
$ git log --oneline

変更箇所を見る
$ git log -p

どのファイルが変更されたか一覧で見る
$ git log --stat

ファイルの状態遷移を見る
$ git status

削除する
$ git rm [file name]

移動する
$ git mv [file name]

作業ディレクトリにファイルがあるとき使えるコマンド

変更を取り消す
$ git checkout -- [file name]

差分を見る
$ git diff

カレントディレクトリのファイル全部をaddする
$ git add .

ステージングエリアにファイルがあるとき使えるコマンド

差分を見る
$ git diff --cached

ちょっとした変更をcommitする
$ git commit --amend


Git管理に含めないファイルがある場合
$ vim .gitignore
logファイルを省く場合は「*.log」を記述する。


logの一番上のコミット状態までバージョンに戻す
$ git reset --hard HEAD

logの2番目のコミット状態までバージョンを戻す
$ git reset --hard HEAD^

logのコミットIDを指定してバージョンを戻す
$ git reset --hard [コミットID]

前回取り消されたHEADの情報が1つ入っているので、そのHEADまで戻す
$ git reset --hard ORIG_HEAD


Branch
別々のバージョンを平行して開発するときに使う。

現在のbranch一覧を見る
$ git branch

branchを作成する
$ git branch [branch name]

branchを移動する
$ git checkout [branch name]

branchの作成と移動を同時に行う

$ git checkout -b [branch name]

branchをmasterに取り込む
$ git checkout master
$ git merge [branch name]
このとき、masterの内容がbranchに合わさるので、masterに有りbranchに無いものは消える。

branchを削除する

$ git branch -d [branch name]

branch間でコンフリクトが起きた場合
$ vim [file name]
採用するbranch以外の記述を削除する。

Tag
tagの一覧を見る
$ git tag

直前のコミットにタグを付ける
$ git tag [tag name]

コミットIDを指定してタグを付ける
$ git tag [tag name] [commit ID]

tag付けされたコミットの詳細を見る
$ git show [tag name]

tagを削除する
$ git tag -d [tag name]


共有リポジトリで操作する

共有リポジトリを作る
$ mkdir ourweb.git
$ cd ourweb.git
$ git init --bare

作業ディレクトリに共有リポジトリを認識させる
$ cd ~/myweb
$ git remote add origin ~/ourweb.git

作業ディレクトリからリモートリポジトリを確認する
$ git config -l

作業ディレクトリのファイルをリモートリポジトリに追加する
$ git push origin master

myweb内のファイルをmyweb2にコピーする
$ git clone ~/ourweb.git/ myweb2

myweb2でファイルを編集&コミットした後に、リモートリポジトリに反映する
$ git push origin master

mywebでmyweb2の変更を反映する
$ git pull origin master

コンフリクトが起きた場合
・変更後でも git pullを実行する。
・該当ファイルを編集するとコンフリクト箇所が出るので修正してコミットする。

0 件のコメント:

コメントを投稿