git
大事な概念・用語
- work tree: 保存・更新・管理の対象とするディレクトリのこと。例: ~/hogehoge/
- index: 「git addコマンド」によって, work treeから反映される中間状態。
- repository: 「git commit」コマンドによって, indexから反映される状態。例: ~/hogehoge/.git/
- commitする: indexからリポジトリへ反映すること。
- revision: ある時点でのリポジトリの状態。commitともいう。
つまり, こういう図式: [work tree] --(git add)--> [index] --(git commit)--> [repository]
- branch: repositoryの中の枝分かれ。「git branchコマンド」で作ったり消したり。branchどうしの移動は「git checkout」コマンド。
- tag
GitHubにリポジトリを作る
hogehoge.gitというリポジトリをGitHub上で作る。その後、ローカルで, $ git remote add origin https://github.com/24dakenlo/hogehohe.git ↑このかわりに, $ git remote add origin https://****@github.com/24dakenlo/hogehohe.git のように, URLにログイン名****を埋め込むと, あとでいちいちログイン名を聞かれなくて済む。
GitHubのリポジトリから持ってくる(コピーというかクローン)
$ git clone https://github.com/24dakenlo/sunshade.git
これをhttps:でなくgit:でやると, 認証必要なサイトでは鍵交換が必要。httpsなら単にパスワード入力。
GitHubとのやりとり
git push origin hogehoge # 現在のブランチをネットを介してサーバー(githubなど)に載せる。 その後, githubのブラウザでpull requestする。そのときにブランチを消せる。 githubのブラウザでmerge。その結果, githubのmasterブランチに変更が反映される。 git pull # ネットを介してサーバー(githubなど)のmasterをこちらに反映。
ローカルリポジトリを作る
対象ファイルのあるディレクトリ(それをワークツリーという)で, $ git init
すると, そのディレクトリに.gitというディレクトリができる。それがローカルリポジトリ。
$ git config --global user.name "Kenlo Nasahara" $ git config --global user.email "****@*****"
- ここでREADME.mdを作っておくこと。mdはマークダウンの略。http://codechord.com/2012/01/readme-markdown/
ワークツリーの状態をインデックスに反映
$ git add file1 file2 ... file1とfile2をインデックスに反映。 $ git add -u ... ワークツリー内の全内容をインデックスに反映。 $ git status ... インデックスの状態を表示。
インデックスの状態をリポジトリに反映(コミット)
$ git commit -a ... インデックスの状態をリポジトリに反映。 → この後, メッセージ入力が求められる。
または,
$ git commit -m "minor change!" ↑メッセージをコマンドラインに含めてしまう。
GitHubにpush
$ git push origin master
もろもろ
git diff # ワークツリーとリポジトリの差分 git diff --cached # インデックスとリポジトリの差分 git diff HEAD # ワークツリーとリポジトリの差分
git checkout HEAD . # ワークツリーとインデックスを最近のリポジトリと同じ状態に戻す。 git checkout オブジェクト名 . # ワークツリーとインデックスを過去のリポジトリと同じ状態に戻す。
git branch hogehoge # ブランチの新規作成 git branch # 存在するブランチをすべて表示 git checkout hogehoge # 現在のブランチを切り替え git checkout master; git merge hogehoge git branch -d hogehoge # ブランチの削除
git revert オブジェクト名 # コミットを取り消す
git log ... 変更履歴の表示 $ git log commit 916a3b27dd3257bd6c2d9e4db5f7eb785582b929 Author: Kenlo Nishida Nasahara <****@gmail.com> Date: Sat Jun 17 14:27:10 2017 +0900 ↑この916a3b27dd3257bd6c2d9e4db5f7eb785582b929みたいな部分をそのコミットの「オブジェクト名」という。
git branch ... ブランチを一覧表示 git branch hogehoge ... hogehogeという名前のブランチを新規に作成。 git checkout hogehoge ... hogehogeというブランチに切り替える。 git chechout master; git merge hogehoge ... hogehogeというブランチの内容をmasterブランチに反映。 git branch -d hogehoge ... hogehogeというブランチを削除。
git clone ~/hogehoge ... ~/hogehogeというワークツリー及びそのリポジトリをカレントディレクトリにコピー。
Keyword(s):
References:[とらりもんHOME]