gitの資料 - morivden/GMVProject GitHub Wiki
gitの資料
git : バージョン管理ステム
git-scm.com
1 : 作業ディレクトリ
2 : ステージングエリア(インデックス)
3 : リポジトリ(ローカルリポジトリ、リモートリポジトリ)
gitの設定
必須設定
git config --global user.name "名前"
git config --global user.email "メールアドレス"
メッセージを色分け
git config --global color.ui true
設定の一覧
git config -l
ヘルプの見方
git config --help
git help config
コミット
作業用のディレクトリを作成
mkdir ディレクトリ名
gitで使えるようにする(必須)
git init
ステージングエリアにファイルを上げる
git add ファイル名
ステージングエリアからリポジトリに上げる
git commit
コメントやメッセージを入れる(変更点、修正点などわかるように)
履歴を表示
git log
gitのログを見る
- コミットにつく一意のID
- コミットした人
- コミットした日時
- コミットメッセージ
コンパクトに
git log --oneline
IDとコミットメッセージのみ表示される
変更された場所を見たい
git log -p
どのファイルが何箇所変わったか
git log --stat
現在の状態を把握
現在の状態を確認
git status
変更内容が間違っていたから元に戻す
git checkout -- ファイル名
差分を確認
どこがどう変更されたのか知りたい
git diff
今さっき変更してまだステージングエリアに上がっていないものに使う
git add ファイル名
→ git status
ステージングエリアに上がった場合
git diff --cached
gitでのファイル操作
git addの便利な使い方
git add ファイル名
現在のディレクトリ内のファイルを一気にステージングエリアに上げる
git add .
ステージングエリアに上げたりコミットしたものを削除、移動する
git rm ファイル名
git mv ファイル名
git管理に含めない
バージョン管理する必要がないファイル
.gitignore
を作成
例 : *.log
拡張子が.logのファイルを無視
.gitignoreのある階層のディレクトリとサブディレクトリ適用される
直前のコミットを変更
エディタを立ち上げずにすぐにコミット
git commit -m "メッセージ"
直前のコミットを変更したい
git commit --amend
git logを見ると直前のコミットが変更される
過去のバージョンに戻る
git add .
したが、変更を戻して過去のバージョンに戻したい
現在の作業ディレクトリもステージングエリアも戻したい場合
git reset --hard HEAD
- HEAD : 直前
- HEAD^ : 直前のさらに1つ前
さらに前のバージョンに戻したい
git reset --hard HEAD^
HEADの代わりにコミットIDを指定してもよい(最低7桁)
過去のバージョンに戻る
直前のバージョンに戻す→やはり元のバージョンに戻したい
git reset --hard ORIG_HEAD
ORIG_HEADに前回取り消されたHEADの情報が1つだけ入っている
ブランチを使う
別々のバージョンを並行して開発したい場合に便利
git branch
新しいブランチを作成
git branch ブランチ
今いるブランチに*が付く
別のブランチに移動
git checkout ブランチ
別のブランチに移ってgit log
をすると
先ほどのコミットログは表示されない
ブランチをマージ
対象となるブランチに別のブランチを反映させる
git merge マージさせたい先のブランチ
現在いるブランチ : A
マージさせたいブランチ : B
git merge B
AのブランチにBのブランチの内容が反映される
ブランチを削除
git branch -d ブランチ
マージの衝突(コンフリクト)の解決
別のブランチを作成
ブランチを作ってチェックアウト
git checkout -b ブランチ
別ブランチとマスターブランチでそれぞれ同じ部分を編集
git merge ブランチ
別々のブランチで同じ部分を編集してコミットしたため、
マージの際にコンフリクトが発生する
マージの衝突(コンフリクト)の解決
<<<<<<<<< HEAD
=============
>>>>>>>>> ブランチ
で囲まれた部分でコンフリクトが発生している
どちらかに修正してコミットしなおす
タグを使う
コミットIDに対して名前を付ける
git tag タグ
中身を見る
git show タグ
git tag タグ コミットID
タグの消し方
git tag -d タグ
エイリアスを使う
git config --global alias.エイリアス 元のコマンド
例
git config --global alias.co checkout
git config --global alias.st status
git config --global alias.br branch
git config --global alias.ci commit
git configの内容の確認
git config -l
共有リポジトリ
ourweb.git
A myweb
B myweb2
共有リポジトリを作成
git init --bare
共有リポジトリにpush
Aさんの作業
共有リポジトリを登録
git remote add origin リポジトリの場所
リポジトリの削除
git remote rm リポジトリ
リポジトリにpush
git push origin master
リポジトリの内容を共有
Bさんの作業
git clone リポジトリのURL clone先のディレクトリ
ファイルを編集してコミット → リポジトリにpush
git push origin master
Aさんの作業
変更を確認 現在のリポジトリの内容を引っ張ってくる
git pull origin master
共有時のトラブルを解決
Bさん
ファイルを編集
line 1
line 2
line 3
git push origin master
Aさん
ファイルを編集
line 1
line 2
line third
addとcommitを同時に行う
git commit -am "コメント"
git push origin master
しようとするとエラーが発生する
git pull origin master
コンフリクトの発生
コンフリクト箇所の修正
修正後にコミット→リポジトリにpush
エラーメッセージの通りに行う
おまけ
Githubでリポジトリ作ってローカルとひもづけ
Githubでリポジトリ作成
ローカルに適当にディレクトリ作成
URLの場合
git init
git add コミットしたいファイル
git commit -m "コメント
git remote add origin Githubで作ったリポジトリのURL
例:ttps://github.com/user/repository
git push -u origin master
ssh-keyの場合
git init
git add コミットしたいファイル
git commit -m "コメント"
git remote add origin [email protected]:Githubで作ったリポジトリのURL.git
例:[email protected]:user/repository.git
git push -u prigin master