#はじめに
この度、Gitの学習を始めるにあたって簡単に学習内容やGitコマンドをまとめています。
ローカルからgitにアップするまでの流れ
#####・新規プロジェクトから始める場合・
#1. GitのHPに新規リポジトリを作成する。(githubのHPから作成)
#2. ローカルリポジトリを作成する。(対象ファイルに移動し実行)
$ git init
#3. リモートリポジトリを追加する。
$ git remote add origin (HPで作成したURL)
#4. ステージングエリアにフォルダをアップする。
$ git add .
#5. リモートリポジトリにファイルをプッシュする。
$ git push -u origin master
#####・既存のプロジェクトから始る・ 1. 既存のGitHub上のプロジェクトのURLをコピーする 1. 任意の場所にディレクトリを用意・移動する 1. Git cloneコマンドでリモートリポジトリから情報をコピーする
Gitのデータの持ち方
・圧縮ファイル(ファイル)
・ツリー(コミットしたときのスナップショット?)(ファイル、圧縮ファイル)
・コミット(ツリー、作成者、日付、コミットメッセージ、(親コミット))
####リポジトリについて
・リモートリポジトリは複数登録することができる
Gitの準備をする
#####ローカルリポジトリを新規作成する。
$ git init
「.git」ディレクトリ(gitで必要なデータ)が作成される。
#####既存のプロジェクトから始める場合の始め方
リポジトリをコピーする
① Gitの該当PJのページにある「Clone or download」をクリックし、URLをコピーする。
② 任意のディレクトリ内で以下のコマンドを入力する。
※リモートリポジトリから、ワークツリーと.gitディレクトリがローカルにコピーされる。
$ git clone <リポジトリ名(URL)>
###X. Gitの変更を取り消す・やり直す
#####ファイルへの変更を取り消す
ワークツリーの状態をステージの情報で上書きし、変更前の状態にする。
$git checkout -- <ファイル名>
$git checkout -- <ディレクトリ名>
# 全ファイルの変更を取り消す
$git checkout -- .
#####ステージした変更前を取り消す
$git reset HEAD <ファイル名>
$git reset HEAD <ディレクトリ名>
# 全変更を取り消す
$git reset HEAD .
#####直前のコミットをやり直す
直前のコミットを上書きし、コミットをやり直す。
$git command --amend
#####リモートリポジトリとは
#####設定しているリモートリポジトリを表示する
$ git remote
#対応するURLを表示
$ git remote -v
# より詳細に情報を表示する
$ git remote show <リモート名(origin)>
#####リモートリポジトリを新規追加する
$ git remote add <リモート名> <リモートURL>
# sampleとういうショートカットでurlのリポジトリを登録
$ git remote add sample https://github.com/user/repo.git
#####リモートを変更・削除する
#変更する
$ git remote rename <旧リモート名> <新リモート名>
#削除する
$ git remote rm <リモート名>
####リモートリポジトリから情報を取得する
リモートリポジトリから情報を取得する方法は2つあります。
・git fetch
→ リモートリポジトリからローカルリポジトリに情報を撮ってくる(ワークツリーには反映されないため、git mergeが必要)
・git pull
→ リモートか情報を取得、マージを一気に行う(処理的にはgit fetch、git mergeを一度に行っている)
<使い分け>
結論:fetchを使いましょう
pullを実行すると、pullしたブランチはすべてmasterブランチにマージされてしまう。(統合する気はなくても誤ってブランチが統合されてしまう。)
####ブランチについて
#####ブランチとマージについて
ブランチ:コミットを指したポインタ
・並行して複数機能を開発する仕組み
・ブランチを分岐させることで、他の開発の影響を受けない
HEAD現在自分がいるブランチを指す
#####ブランチを新規作成する(作成しいても移動はしない)
$ git branch <ブランチ名>
#ブランチの一覧を表示する
$ git branch
#全てのブランチを表示する
$ git branch -a
#####ブランチを切り替える
$ git chceckout <既存のブランチ名>
#ブランチを新規作成して切り替える
$ git chceckout -b <新しいブランチ名>
マージ:他の変内容更を取り込むこと
マージには以下の3種理が存在する
・Fast Foward(早送りになるマージ)
・Auto Marge(基本的なマージ)
・confrict(同じファイル同じ場所に対して変更を行ったとき)
#####変更履歴をマージする
$ git merge <(リモート名)/(ブランチ名)>
#####ブランチを変更・削除する
#ブランチの名前を変更する
$ git branch -m <ブランチ名>
#ブランチを削除する(masterにマージされていないものがある場合、削除されない)
$ git branch -d <ブランチ名>
#強制削除する
$ git branch -D <ブランチ名>
####ブランチの利用方法について
masterブランチをリリース用のブランチ、開発はトピックブランチを作成して進める
→masterブランチはあくまでもリリース用として利用し、
機能の開発ごとに最新のmasterブランチからブランチを切って、トピックブランチを作成し、
そこで開発を行う。