Gitの使い方

#02

ファイルを作ったり修正したり

ある程度のまとまりになったら

履歴データベースに保存する

===

1. 作業ディレクトリ

2. ステージング(インデックス)

3. リポジトリ(ローカル、リモート)

===

#03

名前を設定する

```bash:ターミナル
git config --global user.name "(your name)"
```

emailアドレスを設定する

```bash:ターミナル
git config --global user.email "(your email)"
```

メッセージを色分けする

```bash:ターミナル
git config --global color.ui true
```


設定の一覧を見る

```bash:ターミナル
git config -l
```


configのオプションを調べる

```bash:ターミナル
git config --help
git help config
```

#4

ディレクトリ作成

```bash:ターミナル
mkdir myweb
cd myweb
```

mywebでgitを使うための初期化

```bash:ターミナル
git init
```

1(作業ディレクトリ)から2(ステージング)にあげる

```bash:ターミナル
git add ファイル名
```

2(ステージング)から3(リポジトリ)にあげる

```bash:ターミナル
git commit
```


エディタが立ち上がる
メッセージを入力(変更した箇所がわかるような)

履歴をみる

```bash:ターミナル
git log
```

#5 gitのログ

一行で表示

```bash:ターミナル
git log --oneline
```


変更された場所をみる

```bash:ターミナル
git log -p
```


変更されたファイルと箇所数をみる

```bash:ターミナル
git log --stat
```


#6 現在の状況を把握

```bash:ターミナル
git status
```

変更を取り消す

```bash:ターミナル
git checkout -- ファイル名
```

#7 差分を確認

変更された箇所を確認(ステージング前のファイル)

```bash:ターミナル
git diff
```

変更された箇所を確認(ステージングされていてコミット前のファイル)

```bash:ターミナル
git diff --cached
```

#8 gitでのファイル操作について

現在のディレクトリ配下のファイルをすべてステージングにあげる

```bash:ターミナル
git add .
```

ステージングやコミットされたファイルを削除や移動

```bash:ターミナル
git rm / git mv
```

#9 特定のファイルをgit管理に含めない設定

```bash:ターミナル
vi .gitignore
```

gitに含めないファイルを入力(正規表現利用可)
配下のディレクトリすべてに適用される

#10 直前のコミットを変更する

コミットの際コメントを一行しか書かない

```bash:ターミナル
git commit -m "(message)"
```

直前のコミットを変更

```bash:ターミナル
git commit --amend
```

#11 過去のバージョンに戻る(1)

現在の作業ディレクトリとステージを直前(コミット)に戻す

```bash:ターミナル
git reset --hard HEAD
```


現在の作業ディレクトリとステージを2つ前(コミット)に戻す

```bash:ターミナル
git reset --hard HEAD^
```

#12 過去のバージョンに戻る(2)

前回の変更を戻す

```bash:ターミナル
git reset --hard ORIG_HEAD
```

#13 ブランチ(別々のバージョンを並行して開発)

今あるブランチを表示

```bash:ターミナル
git branch
```

新しいブランチを作成

```bash:ターミナル
git branch (branch name)
```

ブランチに移動

```bash:ターミナル
git checkout (branch name)
```

#14 ブランチをマージ

別のブランチを取り込む

```bash:ターミナル
git merge (branch name)
```

ブランチから削除

```bash:ターミナル
git branch -d (branch name)
```

#15 #16 マージの衝突(コンフリクト)を解決

#17 コミットのにタグをつける
ヴァージョンを戻る場合にも使える

すべてのタグがを表示する

```bash:ターミナル
git tag
```

直近のコミットにタグをつける

```bash:ターミナル
git tag (tag name)
```

コミットの内容を示す

```bash:ターミナル
git show (tag name)
```

直近以外のコミットにタグをつける

```bash:ターミナル
git tag (tag name) (commit id)
```

タグの削除

```bash:ターミナル
git tag -d (tag name)
```

#18 エイリアス

gitコマンドにエイリアスつける

```bash:ターミナル
git config --global alias.(短縮名) 元のコマンド
git config --global alias.st status
git config --global alias.br branch
git config --global alias.ci commit
git config -l
```

#19 共同作業

```bash:ターミナル
git init --bare
```

ファイルの管理のみ(コミットはしない)

#20 共有リポジトリにpush

別のリポジトリを登録(ローカルA)

```bash:ターミナル
git remote add (name) (repos location)
```

共有リポジトリを削除(ローカルA)

```bash:ターミナル
git remote add (name)
```

共有リポジトリに選択したブランチの内容をいれる(ローカルA)

```bash:ターミナル
git push (name) (branch)
```

#21 リポジトリの内容を共有

ディレクトリを作成し共有リポジトリの中身をコピー(ローカルB)

```bash:ターミナル
git clone (repos location) (ディレクトリ名)
```

共有リポジトリの内容をマージする(ローカルA)

```bash:ターミナル
git pull (name) (branch)
```

#備考
git pushがrejectされたときの対応方法
https://www.softel.co.jp/blogs/tech/archives/3569

サルでもわかるgit入門
http://www.backlog.jp/git-guide/reference/remote.html