Gitとは
プログラムのソースコードなどの変更履歴を記録・追跡するための分散型バージョン管理システム
集中型バージョン管理システムのSubversionとよく比較されている。
重要用語
- ワーキングツリー
- インデックス
- ローカルリポジトリ
- リモートリポジトリ
- ブランチ
ローカルリポジトリの作成からリモートリポジトリへの反映
$ mkdir /develop/Git-Tutorial
$ cd /develop/Git-Tutorial
$ git init #ローカルリポジトリを作成し、管理に必要な.gitディレクトリが作成される
Initialized empty Git repository in /develop/Git-Tutorial/.git/
$ echo "test1" > test1.txt
$ git add test1.txt #test1.txtをインデックスに追加する
$ git status #変更状況を確認する
$ echo "test2" > test2.txt
$ echo "test3" > test3.txt
$ git status
$ git add . #変更したも(test2.txtとtest3.txt)のを全てインデックスに追加する
$ git commit -m "first commit" #インデックスからローカルリポジトリへ反映する
$ git commit --amend -m"first commit message is changed" #直前のコミットメッセージを修正する
$ git log #コミットログを確認する
$ git remote add origin [追加したいリポジトリのurl] #リモートリポジトリを追加する
$ git push -u origin master #ローカルリポジトリの今いるブランチの内容をリモートリポジトリのmasterブランチに登録する
$ echo "test3 add" > test3.txt
$ git diff #ワーキングツリーとインデックスとの差分を確認する
$ git commit -m "test3 add message"
$ git diff --staged #インデックスと最新のコミットとの差分を確認する
$ git push -u origin master
リモートリポジトリのデータを取得しマージする
git clone [リモートリポジトリのurl] #リモートリポジトリのデータをローカルにコピーし、管理に必要な.gitディレクトリが作成される
git fetch origin #リモートリポジトリのデータをダウンロードするが、ローカルリポジトリのファイルは更新されない
git log origin #リモートリポジトリから取得した履歴を表示する
git merge origin master #リモートリポジトリのマスターブランチのデータを今いるブランチにマージする
git pull origin master #「git fetch + git merge」でリモートリポジトリから最新のデータを取得し、ローカルリポジトリのマスターブランチを更新する
後からgitの管理対象外にしたくなった場合
.gitignoreを作成して、除外したいファイル名を書き込む
・gitignoreに「*.exe」のように記述することも可能
※「・gitignore」そのものをgit addする必要は無い
特定のファイルを除外する場合
touch .gitignore
echo "ファイル名" >> .gitignore
git rm --cache "ファイル名"
git commit -m "ファイルをgit管理から除外"
git push origin master
特定のディレクトリ配下全てを除外する場合
echo "ディレクトリ名" >> .gitignore
git rm -r --cache "ディレクトリ名"
git commit -m "ディレクトリをgit管理から除外"
git push origin master
カレントディレクトリ配下全てgit管理から一度除外する
※一度綺麗にして追加し直すようなことは通常はやらないので推奨しない
git rm -r --cached .
git commit -m "カレントディレクトリ配下を全て除外する"
git push origin master