Gitの基本操作

gitとは何か
・バージョン管理システム
管理の流れ
・ファイルを作ったり、修整したりしたらその履歴データベースに保存する。

Gitでは3つの状態を用意している
1、作業ディレクトリ
ファイルを作ったり、修整したり

2、ステージングエリア (インデックス)
作業結果を記録

3、リポジトリ(ローカル・リモート)
意味のあるまとまりをキレに保存する

Gitの設定
必須の設定
・ギットは保存するとき保存した人の名前とメアドを必ず記録する
git config — global user.name “Name”
git config –global user.email “Mail”

便利
git config –global color.ui true
メッセージの色分けをしてくれる

確認
git config -l
設定の一覧が見える

ヘルプの見方
git config –help コンフィグのヘルプを見るとき
qを押すとヘルプ画面から抜けられる

初めての管理
作業用のディレクトリ(フォルダー)を作る
mkdir フォルダー名
cd フォルダー名

git init
そのフォルダーをGitで使うよ!ということをいう

フォルダーの中にファイルを作成していく

ステージングエリアにそのファイルを上げていく
git add ファイル名

リポジトリにあげる
git commit -m “メッセージ”

git log で履歴を見れる
(オプション)
git log –online  一行で納めてくれる
git log -p 変更された場所を具体的に変更する
git log –stat どのファイルが何か所変わったか?内容ではない
現在の状態を確認
git status 変更されたものがあるか?コミットやステージに上がっているか?

git checkout –ファイル名  間違えたらこれでファイルの変更を取り消せる

どこをどう編集したか確認する
git diff 今さっき変更してステージングエリアにあげてない
git diff -cached

今のディレクトリの下にあるファイル全部アド
git add .

一回アドしたりステージングエリアにあげたものを消す
一回Gitで操作したものに関しては必ずGitで操作すること
git rm  削除
git mv 移動

git の管理下に含めない場合
.gitignoreというものに無視してほしいものを指定しておく
このファイルが置かれているディレクトリとその下のディレクトリに作用する

直前のコミットを変更する
git add .
git commit –amend 直前のコミットを無かったことにしてくれる
たいした間違えじゃない場合こっちのほうがログがすっきりするからいい。

過去のバージョンに戻ってみる
コミットする前の場合
git reset –hard HEAD(直前のコミットに戻したい場合)
さらに前の場合
git reset –hard HEAD^(2つ前に戻したい)
git reset –hard ID(log確認した時に出てくるID最低7桁くらいコピペして貼っておくとピンポイントで戻れる)

そもそも最初のコミットに戻りたい場合
git reset –hard ORIG_HEAD
ORIG_HEAD 前回取り消された履歴が残っている
ブランチを使ってみる
git branch  ブランチ一覧
git branch ブランチ名 そのブランチができる
git checkout 行きたいブランチ
ブランチをマージしてみる

マージ(混ぜる)されたいおおもとのブランチへ移動
git merge マージしたいブランチ名

git branch -d 消したいブランチ名
マージの衝突(コンフリクト)を解消
git checkout -b 新ブランチ

違うブランチで、同じ場所を修正した場合起こる
<<<<HEAD
マスターのコミットではこう修整されている
=====
その他のブランチで修整された場所
>>>その他のブランチ

解消の仕方はこれらの物を削除して保存してコミットすればいいだけ。両方の履歴が残っているから戻りたければ戻れる
<<<<HEAD
=====
その他のブランチで修整された場所
>>>その他のブランチ
タグを使ってみる
コミットのIDがわかりにくいから名前を付けられる

直近のコミットに対してタグをつける場合
git tag タグ名

git tagでタグが見れる

痕からつける場合
git tag タグ名 ID

git show タグ名で内容が見える
git tag -d タグ名 タグが消える

エイリアスをつける(短縮名)
git config –global alias.短縮した名前 おおもとのコマンド名

例えば
co checkout
st status
br branch
ci commit
git config -lで設定が見える

共有リポジトリに入れる
git remote add origin 共有リポジトリの場所
git remote rm なんとかで削除もできる
git push origin master 共有リポジトリに向かってマスターを突っ込んでくださいという意味になる

共有リポジトリの内容を自分のところに持ってくる
git clone 共有リポジトリ やりたいリポジトリ

cd 新しいリポジトリ
通常通りプッシュまで

git pull origin master
共有リポジトリの内容をAさんのところに引っ張ってきてマージしてくれる。Bさんが下内容のログが見える
よくありがちなトラブル
git commit -am “コメント” addとコミットが同時にできる
実は同じところを自分より相手が先に直していてコンフリクトみたいなことが起きてた!
その場合は。。。
git pull origin master
で取り込んで、その後コンフリクトを直す