とらりもんHOME  Index  Search  Changes  Login

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 "****@*****"

ワークツリーの状態をインデックスに反映

$ git add file1 file2     ... file1とfile2をインデックスに反映。
$ git add -u    ... ワークツリー内の全内容をインデックスに反映。
$ git status     ... インデックスの状態を表示。

インデックスから削除(管理対象から除外)

$ git rm --cached filename

インデックスの状態をリポジトリに反映(コミット)

$ 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というワークツリー及びそのリポジトリをカレントディレクトリにコピー。

最新のリポジトリの状態までワークツリーを戻す。

$git checkout HEAD .

古いファイルを引っ張りだす

$ git show HEAD :abcd.c
$ git checkout HEAD :abcd.c
Last modified:2021/02/27 17:59:20
Keyword(s):
References:[とらりもんHOME]