Skip to content

Latest commit

 

History

History
91 lines (50 loc) · 3.53 KB

11_appendix.md

File metadata and controls

91 lines (50 loc) · 3.53 KB

付録 ー 逆引き Git コマンド

リポジトリの作成

現在のディレクトリを作業ディレクトリとしてリポジトリをはじめから作成したい

$ git init

既存のリポジトリを複製したい

$ git clone <複製元> <複製先>
  • --bare オプションを付けると、作業ディレクトリは複製されず、リポジトリだけが複製される。
  • clone してきた場合、
    • 複製もとのリポジトリが自動的に origin という名前でリモートリポジトリに登録される
    • 複製もとのブランチはすべて「リモートブランチ」として複製される
    • origin/master 追跡する master というブランチが作成される
    • master の内容が作業ディレクトリにチェックアウトされ、復元される。

作業ディレクトリの内容をコミット

作業ディレクトリの変更内容をstage, unstageしたい

$ git status

するとたいてい「こういうときはどうしてね」と書いてあるのでそれに従うと良い。

コミットしたい

$ git commit
  • -m <コミットメッセージ> を付けて実行するとエディタを立ち上げずにコミットメッセージを入力できる

歴史を改変

直前のコミットをやり直したい

$ git commit --amend

あるブランチで行われた変更を別のところからやり直したことにしたい

$ git rebase <ここからやったよということにしたいコミット>

リモートリポジトリ

リモートリポジトリの一覧を表示したい

$ git remote

リモートリポジトリを追加したい

$ git remote add <そのリモートリポジトリにつける名前> <リモートリポジトリの場所>

リモートリポジトリのコミット内容とブランチを手元のリポジトリに取り込みたい

$ git fetch <リモートリポジトリの名前>
  • リモートリポジトリのブランチは「リモートブランチ」として手元に取り込まれる

リモートブランチと追跡ブランチ

あるリモートブランチを追跡する新しいブランチを作りたい

$ git branch <新しいブランチ> <リモートブランチ>

ついでに新しくできたブランチを checkout したいならば、

$ git checkout -b <新しいブランチ> <リモートブランチ>

手元のブランチの変更をリモートブランチを通じてリモートリポジトリに反映したい

$ git push
  • push.default の値が 'simple' ならば、今選択しているブランチのみ push される
  • push.default の値が 'matching' ならば、追跡しているブランチすべてが push される
  • 手元のリモートブランチが「リモートリポジトリ」に追いついていないと push できない
  • リモートリポジトリに対する書き込み権限をあなたがもっていないと push できない

リモートリポジトリの変更を手元に取り込みたい

$ git fetch
$ git checkout <取り込みたいブランチ>
$ git merge <リモートブランチ> (あるいはリベースのほうが都合がよければ git rebase <リモートブランチ>でもよい)

あるいは

$ git pull

とすると、追跡ブランチにリモートブランチの内容を merge するところまで一気にやってくれる