Git のサイトに詳しいマニュアルがある。また,Pro Git というオンライン本が公開されている。日本語版もある。2014年の本で,Git 2.8.0 というやや古いバージョンを使っている。
MacのコマンドラインツールにはGitが入っている:
% which git /usr/bin/git % git --version git version 2.32.0 (Apple Git-132)
あるいはHomebrewで最新のものを入れる:
% brew install git % hash -r % git --version git version 2.36.0
LinuxにはGitが入っているか簡単に入れられる。WindowsにはGit Bashなどのツールがある。
自分でGitサーバを立てる方法は gitサーバ構築 を参照。
そうでない場合は,まず GitHub にサインアップする(アカウントを作る)。
自分のPC(ここではMac)での設定:
git config --global user.name okumuralab # GitHub のユーザ名 git config --global user.email okumura@okumuralab.org # 同メアド git config --global pull.rebase false git config --global core.editor emacsclient # 自分の好きなエディタを指定 git config --global init.defaultBranch main # Git 2.28以降
これらの設定は ~/.gitconfig
に入るだけなので,そちらを編集してもよい。
上の最後の設定について補足説明しておく。リポジトリはいくつかのブランチに区切ることができる。デフォルトのブランチ名は昔は master
であったが,この名前は政治的に正しくないということで,Git 2.28 からデフォルトを設定できるようになった。今では main
に設定するのが一般的である。
GitHub でも 2020-10-01 からデフォルトが変更された。Renaming the default branch from master も参照。
すでに GitHub で master
という名前を使っていたら,Web 上で master
という表示をクリックし,View all branches をクリックして,master
の右側の🖋️をクリックし,main
に変更できる。変更したら,ローカルのリポジトリで次のように再設定する必要がある:
git branch -m master main git fetch origin git branch -u origin/main main git remote set-head origin -a
GitHub Pages の場合,ブランチ名を変えると unpublish されるが,何かを commit すれば再構築される。
GitHub でリポジトリを作る(空でもいい)。それを適当なディレクトリにクローンする:
git clone https://github.com/username/repositoryname.git
これで repositoryname
というディレクトリが作られ,リモートリポジトリの内容がコピーされるので,その中に入って作業する。このディレクトリの中には .git
という隠しディレクトリがあるが,その中は(よくわかっていないうちは)直接編集しない。それ以外の場所(ワーキングツリー,ワーキングディレクトリ)で作業する。
ワーキングツリーに新規作成したファイルあるいは編集したファイルは,まず
git add ファイル名またはディレクトリ名
でステージングエリア(インデックス)に移す。変更がある程度まとまった時点で
git commit -m "ログメッセージ"
で(ローカル)リポジトリ(.git
以下)にコミットする。あるいは
git commit
とだけ打ち込めばテキストエディタが立ち上がってログメッセージが編集できる。メッセージは英語の場合 README.md: add repository description
のように,小文字動詞現在形で始め,ピリオドは付けないのが一般的。1行メッセージの後に空行をはさんで詳しい説明を書いてもよい。書き方については Submitting Patches の [[describe-changes]] 以下が参考になる。間違えたら
git commit --amend
でやり直せる。
add
して commit
するのが面倒であれば,
git commit -am "message"
とすれば,追跡状態の(tracked な)ファイルで変更されたものを一括コミットできる。
git status
で状態が確認できる。追跡しない(untracked な)状態のままにして git status
にも表示したくないなら,.gitignore
というファイルの各行にファイル名を列挙しておけば,そのディレクトリ以下で同名のファイルは無視される。
不用意にファイルを変更してしまったら
git restore ファイル名
で取り消せる。
この段階ではまだリモートには送られていない。ローカルリポジトリをリモートの main
ブランチに送るには,まず現在のブランチ名を把握する。
git branch # ブランチ名を表示 git branch -m main # 現在のブランチ名がmasterであればmainに変更 git push origin main # リモートのmainブランチに送る
あるいは
git push -u origin main # リモートのブランチをmainに設定(-u は --set-upstream の略) git push # 上で設定したリモートのブランチに送る
新しいブランチを作る:
git branch develop # developというブランチを作る git branch # 確認 git switch develop # ブランチ移動
ブランチ移動は,以前は git checkout
を流用したが,Git 2.23 で git switch
コマンドが新設された。