Gitの更なるまとめ(書きかけ)
関連エントリ
初期化
| SN | cmd | 説明/引数例 |
|---|---|---|
| init | ||
| cl | clone {src_repository} [{dst_path}] | https://example.com/path/to/repo.git/ path/to/dir |
addからcommitまで
addの反対がreset
| SN | cmd | 説明/引数例 |
|---|---|---|
| a | add {file/dir_pat} | ., *.txt(このワイルドカードはシェルの機能), file.txt, dir(dir中身全て追加) |
| an | add -n {file/dir_pat} | その{file/dir_pat}で何が追加されるか |
| au | add -u [{file/dir_pat}] | ciaのciしない版(管理下にあるものの更新) |
| ap | add -p [{file/dir_pat}] | 対話的にadd {file/dir_pat}付与でそれ限定 |
| aa | add -A [{file/dir_pat}] | 新しく追加・削除・変更された、未管理のファイルを追加 |
| r | reset | addしたのを全消し |
| r | reset {ver} | HEADとindexを過去{ver}の状態に cimのciしない版 |
| rc | rm --cached {filepat} | {filepat}をindexから消す*1 |
| rp | reset -p | 対話的にreset |
| ci | commit -v | (-vで)変更点を表示しながらコミット |
| commit -c ORIG_HEAD | 前の(rsなどで動かされる前のHEADの)コミットメッセージを再利用してci | |
| cia | commit -a | auしてci |
| cim | commit --amend | rsしてci |
| ciam | commit -a --amend | rしてauしてci |
状態の確認
| SN | cmd | 説明/引数例 |
|---|---|---|
| st | status -s -b | -sシンプルに表示 -bブランチも表示 |
| dh | diff HEAD | ワークツリーとHEADの差分 |
| d | diff | ワークツリーとインデックスの差分 |
| dc | diff --cached | インデックスとHEADの差分(次のciする差分) |
| lg | log | リポジトリのログ |
| ls | ls-files | 管理中のファイル一覧 |
| rg | reflog | HEADの遷移 |
リモート
| SN | cmd | 説明/引数例 |
|---|---|---|
| roa | remote add origin {URL} | git@github.com:LeafCage/temp.git |
| pu | push -u origin master | 初めてアップロードするときに使う |
| ro | remote -v | リモートリポジトリの詳細情報 |
| pf | push -f origin {local_blanch:remote_blanch} | pf HEAD~:master masterのコミットを取り消す |
リポジトリをリネーム
| SN | cmd | 説明/引数例 |
|---|---|---|
| mv | mv {src} {dst} | |
| rc | rm --cached {src}, add {dst} | すでにリネームしていたとき |
| rou | remote set-url origin {URL} | remote originのurlを変更 |
| pd | push --delete origin {branch} | リモートブランチを削除 |
| pf | push -f origin {:remote_blanch} | リモートブランチを削除 |
まだ考えてない
| rs | reset --soft {ver} | ciを取り消し{ver}まで遡る。cimのciしない版に近い。HEAD^ |
|---|
統合
| SN | cmd | 説明/引数例 |
|---|---|---|
| m | merge [--no-ff]{branch} | [--no-ff]を付けていないとブランチフラグを動かすだけで統合できるなら新しいリビジョンを作らない |
| cp | cherry-pick {ver} | {ver}を取り込む |
| rb | rebase {branch} | |
| rbc | add ファイル名→ rebase --continue | リベースコンフリクト解消させたことを伝えてrebaseを再会する |
| rba | rebase --abort | リベースコンフリクト解消させるのをやめてrebase開始前のworkに戻す |
マージのコンフリクト解消
| SN | cmd | 説明/引数例 |
|---|---|---|
| a | add ファイル名 | コンフリクトを解消したものとして提出 |
| com | checkout --merge ファイル名 | コンフリクトを初めからやり直す |
| coo | checkout --ours ファイル名 | 自分側を一方的に採用 |
| cot | git checkout --theirs ファイル名 | 相手側を一方的に採用 |
gitでブランチをマージした時にコンフリクトを起こしてしまったら | S4U -smile for you-
【派閥別】Gitのコミットを間違えたときの対処法まとめ - 本当は怖い情報科学
*1:r HEAD -- {filepat}でも同じ効果gitでアレを元に戻す108の方法 - TIM Labs