Gitの基本

ソースツリーの登場によって、最近gitをターミナルで叩くことがかなり減った。 思い出せないことが増えたので、よく使うコマンドをメモ。

必須情報を登録

1
2
3
git config --global user.name "sawasawato"
git config --global user.email "samp@samp.com"
git config --global color.ul true //必須ではないけどカラースキームは設定した方が良い

git 設定を見直す

1
2
git config -l
git config --list

help を引く

1
2
git sample --help
git help sample

作業ディレクトリ ファイル作成

1
2
3
cd /samp/
mkdir project //ディレクトリ作成
vim index.html //ファイル作成 修整 保存

guiでフォルダとファイルを作っても、もちろん良い


git ローカルリポジトリを作成

1
git init

ステージングにアップ / インデックスに登録

1
2
git add index.html
git add . //カレントディレクトリ以内登録

ローカルリポジトリにアップ

1
2
git commit
git commit -m "memoMessage" //コミット内容を表記

テキストエディタが開くので、作業内容などを入力する


ログを見る

1
2
3
4
git log
git log --oneline //ログをコンパクトに見る
git log -p //変更された場所を表示
git log --stat //どのファイルが何箇所、変更があったのか表示

現在の状況を把握する 重要

1
git status

Changes not staged for commit:
addもcommitもされていないなど表記される


間違えたファイルを元に戻す

add してステージングにあがっていないもののみ

1
2
git checkout -- index.html
git checkout -- .

差分を確認する — ステージングの前

add してステージングにあがっていないもの

1
git diff

差分を確認する — ステージングの後

add してステージングにあげてしまったもの

1
git diff --cached

コミットしたファイルを削除する方法

1
git rm index.html

commitして、gitの管理化においたファイルはgitコマンドで削除、移動しないとバグになる。 SVNも同じ。エクスプローラー や macの操作画面でファイルなど削除、移動しないように。


git 管理化に含めない方法

1
2
3
4
5
vim .gitignore

*.log //など記述する

ls - la //で .ignore 確認できれば OK

.gitignore がある階層から下のものを除外する gui で作成してももちろん良い。


直前のコミットを上書き変更する

1
2
3
vim index.html
git add .
git commit --amend

直前のコミットメッセージだけ変えたいときも有効
ファイルを変更していなくても大丈夫


過去のバージョンに戻る

1
2
3
git reset --hard HEAD //作業したファイルを破棄して、最後にコミットした時にリセットする
git reset --hard HEAD^ //二つ前に戻る
git reset --hard 445a3e8 //指定のバージョンに戻る 最低7桁

HEAD === 一つ前のバージョン というか 作業する前の状態
commit ID 445a3e80acc7d7135009e995dd9112d247f0151d
など入力しても大丈夫 一つより前に戻る時は ID 入力


前のコミットに戻したけどやっぱり、進んだコミットにしたい

1
git reset --hard ORIG_HEAD

2回リセットした場合はダメ


ブランチを確認

1
git branch

ブランチを作成

1
git branch sample

ブランチを移動

1
git checkout sample

ブランチを削除

1
git branch -d sample

ブランチを作成してそのまま移動

1
git checkout -b sample

ブランチをマージする / 内容を取り込む

1
2
git checkout sample //他の変更を取り込むメインブランチに移動
git marge sample2 //サブブランチから取り込む

コンフリクトの解決

1
http://dotinstall.com/lessons/basic_git/6716

タグを確認する

1
git tag

タグとは 分かりにくいコミットID を分かりやすい別の名前を付ける
リリースバージョン 1.0 のように


直近のコミットに対してタグを付ける

1
git tag v1.0

タグを使ってコミットの内容を示す

1
git show v1.0

後からタグを付けたい

1
git tag samp コミットID(7桁以上)

タグを削除する

1
git tag -d v1.0

エイリアス(ショートカット)を使う

1
2
3
4
git config --global alias.co checkout
git config --global alias.st status
git config --global alias.br branch
git config --global alias.ci commit

共有リポジトリの作成

管理ファイルだけが管理されるようになる設定

1
git init --bare

共有(別の)リポジトリを登録する

1
2
3
git remote add origin (repos location)

git remote add origin ~/.ourweb.git

共有リポジトリ登録を削除する

1
git remote rm orign

共有リポジトリに push

1
git push origin master

リモートリポジトリをコピーする

予めディレクトリを作成する必要はない

1
git clone ~/共有リポジトリパス newdirectory

別の人が編集したファイルを取り込む

1
git pull origin master

\dスイッチを使う

どこからでも別ディレクトリに移動できるこれは便利

1
cd \d D:

Dドライブに移動する

1
D:

参考サイト

http://dotinstall.com/lessons/basic_git/
http://www.backlog.jp/git-guide/
https://www.atlassian.com/ja/git/tutorial/git-basics#!overview