Gitとは?
ソースコードのバージョン管理に使うもの。
ソースコードの履歴を残して、誰が、いつ、どのファイルのどの場所を編集したか簡単に管理できる。
Rails Tutorialなどで使うBitbucketもあるが、あまり使われていないようなので
リモートリポジトリにはGitHubを使う。
リポジトリとは?
ファイルを管理するデータベースをリポジトリと呼ぶ変更履歴を記録する場所
・ローカルリポジトリ 各開発担当者がローカル環境に保持するリポジトリ
・リモートリポジトリ すべての開発担当者で変更内容を共有する
基本的な操作の流れと用語
学習環境(導入方法などは省略)
・AWS Cloud9(無償内で利用)
・GitHub
git config --global user.name "任意の名前" git config --global user.email "任意のメールアドレス"
日本語が文字化けしないように設定
git config --global core.editor 'vim -c "set fenc=utf-8"'
設定を確認したいときは
less ~/.gitconfig
ディレクトリ作成(git_repositories)と移動
mkdir git_repositories cd git_repositories/
ディレクトリ作成(tutorial)と移動
mkdir tutorial cd tutorial/
リポジトリを作成(初期化) git init
学習用のファイル作成とadd
新規ファイルを作成
touch a.js
tutorialファイルにあるa.jsに記述
console.log(‘A’);
ターミナルにてgit status
今masterという名前のbranch(ソースコードの作業履歴を枝分かれして記憶していくためのもの)にいる
Untracked files:a.jsは未追跡のファイル=バージョンの管理の対象になってない
つまり今ワーキングツリーにあるということ↓の図を見るとわかりやすい
ワーキングツリーからステージに移行する(add)
git add a.js git status
b.jsを追加 touch b.js
b.jsに以下を記述
console.log('B'); git add b.js git status
コミット(git commit):ステージからローカルリポジトリに移行
”コメント内は重要”
git commit -m "first commit"
(git commit -vの場合もあるらしい。その場合Vimなどでコメントを記述する)
(git commit でやる場合もある。そのときはVimなどで1行目にコメントし:wq)
現在のワーキングツリーの状態はコミットされている最新の状態から変更がないことが確認できる。つまりワーキングツリーとローカルリポジトリの内容が一緒だということ!
ログの確認(git log)
一行で表示したいとき
git log --oneline
一行で最新の3つが見たいとき git log --oneline -n 3
a.js のログを見たい
git log a.js
コミットで行われた差分を確認したいとき
git log -p
↑+は追加したもの-は消したものが表示される。
a.jsのログが見たいとき
git log -p a.js
差分を確認する(git diff)
a.jsにconsole.log(‘AA’);を追加した後にターミナルにてコマンド
git status git diff
このように表示される。
変化をローカルリポジトリにコミット
git add a.js git diff
※差分がない場合は↑のように表示されない
前回のコミットであるHEADとの差分を確認したいとき
git diff HEAD
差分に問題がなければgit commitする
git commit -m "add AA" git log -p
復習)a.jsからconsole.log(‘A’);を削除しコミットする
git diff git add a.js git diff HEAD git commit -m "remove A" git log git lop -p