はじめに
この度、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ブランチからブランチを切って、トピックブランチを作成し、
そこで開発を行う。