バージョン管理流れ
作業ディレクトリ:ファイルの作成・修正
⇩($ git add ファイル名/.)
ステージングエリア(インデックス):作業経過の保存(機能作成)
⇩ ($ git commit)-m: コメント追加 --amend: logに残さない
リポジトリ(ローカル、リモート):まとまり(機能)を保存
===================================================
コマンド
コマンド一覧
$ config --help
設定
$ git config --global user.name "USERNAME"
$ git config --global user.email "EMAIL"
$ git config --global color.ui true (色付)
$ git config --global alias.エイリアス名 対象の命令 (エイリアス付)
$ git config -l (設定内容)
作業ディレクトリ宣言
$ git init
$ git init --bare (共有リポジトリとして)
コミット履歴
$ git log (commitID・Author・Date・Message)
オプション コンパクトに --oneline (commitID7桁・Message)
より詳しく -p ($ git log + 変更内容(行数、内容))
ファイル一覧で -stat ($ git log + ファイル名|変更数)
状態確認
$ git status (状態・対象ファイル)
編集内容(addする前)
$ git diff (変更内容(行数、内容))
編集内容(commitする前)
$ git diff --cached (変更内容(行数、内容))
編集を戻す
$ git reset --hard HEAD(直前)/HEAD^(2つ前)/戻したいcommitID
戻した編集を戻す
$ git reset --hard ORIG_HEAD(直前)
ブランチ作成
$ git branch "ブランチ名"
削除
$ git branch -d "ブランチ名"
移動
$ git checkout "移動先ブランチ名"
作成+移動
$ git checkout -b "ブランチ名"
マージ(ブランチ同士commitを反映させる)
$ git merge "マージするブランチ名"
タグ付(commitIDに名前付)
$ git tag "タグ名" commitID
*指定無しの場合は直近のコミット、削除は-dで
共有/リモート リポジトリの追加
$ git remote add リポジトリの名前宣言 追加されるリポジトリの位置
*削除は-rmで
Push
$ git push Pushsするリポジトリの名前 Pushするブランチ名
リポジトリを複製する
$ git clone 複製元リポジトリの位置 複製フォルダ名
Pull
$ git pull リポジトリの名前 ブランチ名
===================================================
( memo: A, B, 共有リポジトリ 流れ
-->共有リポジトリの作成(bare)
-->Aでリポジトリの追加(remote)
-->Bはそのリポジトリを元に作成(clone)
するとAの複製Bができる
-->Bで編集後、ファイルをPush
-->AでPullするとファイルの内容がマージされる )
コンフリクトの解消(同じファイルを違うブランチで各々変更後マージした時に起きる衝突)
-->ファイルに編集をかけて再びadd,commitする
バージョン管理しないファイル
--> .gitignoreファイルを作成(* .log などと指定)
--> 指定したファイル(拡張子が.log)は管理下に置かれない
※git管理下のファイルなどを削除、移動する際はgit rm などして(linuxコマンドなどで)直接削除しないように。