gitの設定
まずは初期設定をする。gitを使った事のない人は名前などの登録から。
エイリアスの登録は、これは単に省略形で入力できるように別名を与えるだけの設定なので設定してもしなくても良い。
- 名前とEmailの設定
git config --global user.name "(your name)"
git config --global user.email "(your email)"
- メッセージの色分け
git config --global color.ui true
- 設定確認
git config -l
- エイリアスの登録
git config --global alias.co checkout
git config --global alias.st status
git config --global alias.br branch
git config --global alias.cm commit
コミット(プログラムの変更箇所を追加する)
新しくプログラムを作ったら、もし間違えた時に以前のバージョンに戻りたい場合に備えてちょくちょくコミットするのがベター。
分かりやすく説明すると、addでステージングエリア(インデックス)というところに一時登録、そしてコミットすることによりリポジトリというところに最終的に確定登録、みたいなイメージです。
-
git init
gitを使うための初期化 -
git add .
ステージングエリアに追加という意味。「.」はカレントディレクトリ以下の全てのファイルを追加という意味。 - git commit -m "Initial commit"
リポジトリへ追加という意味。
-m オプションを付けると、コミットメッセージを指定してコミットすることができる。
log確認
git log
でログを確認できる。
オプション
-
git log --oneline
一行で表示 -
git log -p
変更箇所も確認したい場合 -
git log -stat
どのファイルが何か所変更されたかを表示
現在の状態の確認
-
git status
変更されたファイルの一覧を表示
差分の確認
- ステージングエリアにまだ登録していない場合
git diff
- ステージングエリアに登録している場合
git diff --cashed
.gitignore(git管理に含めない設定)
「.gitignore」ファイルを作成し**「*.log」**のように記述する
過去に戻る
- ステージングエリアに登録した変更(addしてコミットする前)を一つ前に戻す
git reset --hard HEAD
- コミットのIDを指定して好きな位置まで戻る
`git reset --hard コミットID(7桁以上)
ブランチ
- ブランチ作成
git branch 名前
- ブランチの移動
git checkout 名前
-
ブランチの作成&そのブランチへ移動
git checkout -b 名前
- ブランチのマージ
git merge 名前
- 要らないブランチの削除
git branch -d 名前
コミットIDに分かりやすい名前を付ける(タグ)
- 直前のコミットIDの名前を付ける場合
git tag 名前
- 直前ではなくその他のコミットIDに名前を付ける場合
git tag 名前 コミットID
- タグの内容を見る
git show 名前
- タグの一覧確認
git tag
- タグの削除
git tag -d 名前
共有リポジトリ
共有リポジトリを行うには基本的に「**.git」などのような共有ディレクトリ内で作業をする。
その際のコマンドは通常と少し異なる。
git init --bare
(例)
- Aさんが「myweb」で行っている作業を、共有リポジトリ「ourweb.git」に新規追加する場合
- まずは共有リポジトリのディレクトリを作る
mkdir ourweb.git
cd ourweb
- 次に、共有リポジトリに「origin」という名前の共有を追加
git remote add origin ~/ourweb.git
- リモートのoriginの場所を確認する場合
git config -l
- 削除
git remote -rm origin
- 共有リポジトリにAさんの内容をpushする場合
git push origin master
- Bさんが共有リポジトリ「ourweb.git」の中身を「myweb2」に入れる場合
git clone ~/ourweb.git/ myweb2
- Bさんが「myweb2」でファイル編集して、それをourweb.gitにpushする場合
git push origin master
(注)すでに共有リポジトリに上げられたものを編集したのでgit remote add ~~~~ する必要ない - AさんがBさんの編集してpushした内容のリポジトリを取り込みたい場合(mergeもする)
git pull origin master
(注)Aさん、Bさんが同じファイルを編集して二人ともpushした場合
普通は一人が編集したらそれをpullしなければいけないが、一人がpushしたのを知らずにpushした場合に起こる。(衝突(コンフリクト))
- git pull origin master
一旦このコマンドを入力 - そのファイルを編集して
git commit -am "conflict fixed"
git push origin master