リポジトリを複製する
リモートリポジトリの内容をローカルに複製(ダウンロード)することができる。リポジトリにはrsync://example.com/path/to/repo.git/
やgit://example.com/path/to/repo.git/
やssh://[user@]example.com[:port]/path/to/repo.git/
などの形式で対象を指定することができる。
リポジトリを作成する
カレントディレクトリにリポジトリを作成する。
ブランチの一覧表示する
ローカルリポジトリに存在するブランチの一覧を表示する。
ブランチを作成する
ローカルリポジトリにブランチを新しく作成する。
ブランチの名前を変更する
checkoutしているブランチの名前を変更する。
ブランチを削除する
ローカルリポジトリのブランチを削除する。
リモートリポジトリのブランチも削除する場合は,プッシュすれば良い。プッシュコマンドは以下のような書式で記述できる。
git push プッシュ先リポジトリ ローカルのブランチ名:リモートのブランチ名
なので,リモートのリポジトリを削除するには,ローカルのブランチを削除した状態で以下のようにプッシュすれば良い。
ブランチを切り替える
リモートリポジトリのブランチを取得し,ローカルリポジトリのブランチの内容を書き換える。
ファイルを編集前の状態に戻す
リモートリポジトリのブランチからファイルを取得する。
現在のブランチに含まれる内容を基に,新しいブランチを作成する
現在checkoutしているブランチの内容を基にして,新しいブランチを作成する。
ブランチに他のブランチの内容をマージする
checkoutしているブランチに他のブランチの内容をマージする。マージした結果,コンフリクトが起こることもある。
コンフリクトが起こった場合は,手動でソースコードを修正する必要がある。
リモートリポジトリの内容を取り寄せる
リモートリポジトリのブランチの内容を取り寄せる。取り寄せただけでローカルリポジトリのブランチへのマージは行われない。
リモートリポジトリの内容を取り寄せて,マージする
リモートリポジトリのブランチの内容を取り寄せ,マージを行う。
リモートリポジトリの内容を取り寄せて,リベースする
リモートリポジトリのブランチの内容を取り寄せ,リベースを行う。
新しくコミットを積む前にgit pullし忘れた場合や,コミット(枝分かれ)をキレイにしたいときに使う。
ブランチのコミット履歴を確認する
checkoutしているブランチに積まれているコミットの履歴を確認する。
変更のあるファイルを確認する
変更のあるファイルを確認する。
ファイルの差分を確認する
編集したファイルの,元の状態との差分を確認する。
ファイルの更新をステージング反映する
ファイルの更新をステージング(commit可能な状態)に反映する。
ファイルの削除をステージングに反映する
ファイルの削除をステージング(commit可能な状態)に反映する。
更新内容をステージングから外す
ファイルの編集内容はそのままで,ステージングからファイルを外す(addをする前の状態に戻す)。
全ての内容を元に戻す
ファイルの編集内容ごと,全てのファイルを元の状態に戻す。
※HEAD~1やHEAD~2などと指定すると,いくつか前のコミットまで戻ることが出来る。
ブランチに更新内容を反映する
checkoutしたブランチに対して自分で追加した更新内容を反映する。
–amendオプションを付けることで,1つ前のコミットに対してコミットの内容を上書きすることが出来る。
ローカルリポジトリのコミットをリモートリポジトリに反映する
ローカルリポジトリで積んだコミットをリモートリポジトリに反映することが出来る。
–amendを使ったコミットなどを行った場合は,-fオプションを付けることでプッシュすることができる。
コミットの歴史を書き換える
派生元のコミットを最新のコミットにすることが出来る。masterの古いコミットを元に派生したブランチがあった場合,そのブランチをmasterの最新のコミットを元に派生したブランチにすることが出来る。
コミットの歴史を書き換えることが出来る。実行すると,エディタが立ち上がりコミットの編集モードへと入る。
※originを指定することでリモートのブランチを基にしてコミットの歴史を書き換える。
1
|
git rebase -i origin ブランチ名
|
rebaseした内容を完了する
rebaseによるコミット履歴の変更を完了する。
rebaseした内容を元に戻す
rebaseによるコミット履歴の変更を取り止める。
特定のコミットへ戻る
reflogでコミットのハッシュ値を調べる。
reflogで調べたハッシュを使い,resetで特定のコミットへ戻る。
他のブランチの特定のコミットを適用する
cherry-pickで特定のコミットのみをつまみ食いする。
reflog,もしくは他の情報から調べたハッシュ値を使用する。
コミットを打ち消す(コミット履歴は積まれる)
ブランチへのコミットを打ち消す。コミットが無かったことになるように見えるが、実際はコミット履歴は積まれているかたちで変更が加わる。打ち消したいコミットハッシュを指定して使用する。ここには枝分かれしたブランチ名も指定することが出来る。
複数のファイルの内容を検索する
複数のファイルから,特定のキーワードにマッチする行を検索することが出来る。
問題のあるコミットを探索する
2分岐探索によって,バグが混入したコミットを探すことが出来る。
1
|
git bisect start 問題のあるコミットハッシュ 問題のないコミットハッシュ
|
※「問題のあるコミットハッシュ」には,バグが混入している最新のコミットハッシュを指定し,「問題のないコミットハッシュ」には,適当に時系列を遡って見つけたバグのまだ混入していない状態のコミットハッシュを指定する。
「問題ある」「問題ない」の判定は以下のコマンドで行う。
この判定を何度か繰り返すことで,問題のあるコミットを絞り込むことができる。
探索が終了したら,以下のコマンドによってbisectモードを終了する。
ファイルの変更内容を一時保存する
作業途中にレビュー依頼などがきて,他のブランチに切り替えたい場合,変更内容を一時保存しておくことが出来る。
一時保存した変更内容が積まれたリストを確認する。
一時保存した変更内容を取り出す。
一時保存したものが溜まり過ぎると,どんな変更内容だったのかが分からなくなるので,基本的には一時保存する内容は一つまでにして運用すると良い。