読者です 読者をやめる 読者になる 読者になる

n-knuu's logs

憧れ駆動。だいたい競プロ

入門git 第Ⅰ部(第1章〜第3章)

以前TLで見かけた入門gitを買って読んでる。

入門git

入門git

薄いのですぐに読み終えられそう。

第1章

いろんな用語説明。
リポジトリは金庫と出納簿、作業ツリーが金庫の中身、みたいな感じだろうか。
書くの面倒いので割愛

第2章

2.1 Gitのインストール

gitはcommand line toolをinstallした時に、Apple git-48なるものが一緒に入ってるからそのまま使うことを試みる。
で、git-guiなるgitのGUI出てきて紹介されてるからとりあえず開いてみようとして「git gui」と入力して実行してみる。
でも、そんなコマンドねーよって怒られるから何でだ〜と思ってたら、Apple git-48がだめっぽいので、brew install gitする。
それでも、git --versionしてみてもまだApple git-48が入ってるらしいし、なんでやねんと思ってると、PATHの関係でだめっぽいので、export PATH=/usr/local/bin:$PATHしたらbrewで入れたgitの方になってた。よかった。(でもGUIで使うなら、多分SourceTreeつかうだろうなあ)

2.2 Gitの設定

git configコマンドを使う。とりあえず、本の通りに設定してみる。
user nameとemailのデフォルトの設定

git config --global user.name "名前"
git config --global user.email "メール"

--grobalオプションはデフォルトの設定をするときにつける。
なんかgrobalって入力してしまう。

git config --global --list

で今までgit config --globalで設定した一覧が見れる。

git config --global color.ui "auto"

これは色の設定で、設定しておくとあとから見やすい、かも。

2.3 GitのGUI

ふーんって感じ。git-guiとかgitkとかある。Apple git-48ではコマンドがないって怒られる。brewで入れたgitなら大丈夫。
MacだとGitXなるがあるらしい。とりあえず後回し。

2.4 Gitのヘルプ

git help <command>

でマニュアルが見れるらしい。

第3章

コマンド一覧

リポジトリの作成(追跡したいディレクトリで)

git init

1つのファイルをコミット(新たなファイルを作った時でも、変更を加えた時でも同じ)

git add ファイル名
git commit -m "コミットメッセージ"

-mを指定しなければ、エディタが開かれて、コミットメッセージを入力して、保存する。
全てのファイルをコミットしたければ、以下を入力する。

git commit -a

エディタはvimがデフォルトで設定されているので、emacsに変更したければ以下を入力すれば良い。

git config --global core.editor emacs

コミットのログは以下で見れる。(過去n個のコミットのログを見たければ、-nオプションをつければ良い)

git log
git log -n

以下を入力すれば、コミットのログがそれぞれ1行で表示できる。

git log --pretty=oneline

また作業ツリーの状態は以下で確認できる。

git status

作業ツリーの状態は、ステージされてない状態と、ステージされてる状態と、コミットされた状態の3つがあるっぽい。
ステージされてない状態でgit addするとステージされてる状態になり、git commitすると、コミットされた状態になる。
コミットメッセージは複数行入力できて、

git commit -m "コミットメッセージ1" \
-m "コミットメッセージ2"

とすれば良い。
ブランチを作成/削除したいときは以下を入力する。

git branch ブランチ名 ブランチ元
git branch -d ブランチ名

ブランチを切り替えるときは以下を入力する。

git checkout ブランチ名

タグを打ちたいときは以下を入力する。(リポジトリにあるtagを確認したい時はタグ名とブランチ名を入力しなければ良い)

git tag タグ名 ブランチ名

リベースしたいときは以下を入力する。

git checkout リベース先ブランチ名
git rebase リベースしたいブランチ名

リモートリポジトリのクローンを作るためには以下を入力する。

git clone リモートリポジトリの場所