#author("2018-06-11T19:13:36+09:00","default:mat2umoto","mat2umoto") #author("2019-03-31T21:45:18+09:00","default:mat2umoto","mat2umoto") *代表的なgitコマンド [#h937b1f0] |LEFT:150|LEFT:200|LEFT:450|LEFT:450|LEFT:300|c |分類|コマンド|機能説明|TortoiseGitでの操作方法|補足|h |リポジトリの生成|git init|ノンベアリポジトリ(ワーキングディレクトリを持つローカル用のリポジトリ)を作成する。|ここにリポジトリを作成|| |~|git init --bare|ベアリポジトリ(ワーキングディレクトリを持たないリモート用のリポジトリ)を作成する。|ここにリポジトリを作成>Bareを生成|| |~|git clone|リモートリポジトリを元にノンベアリポジトリを複製する。|クローン(複製)|| |~|git clone --bare|リモートリポジトリを元にベアリポジトリを複製する。|クローン(複製)>Bareリポジトリにクローン|| |ローカルの操作|git add|ファイルをステージングエリアに登録する(次回のコミット対象ファイルとする)。|追加|| |~|git commit|ファイルの変更をローカルリポジトリにコミットする。|-|| |~|git commit|ファイルの変更をローカルリポジトリにコミットする。|コミット|| |~|git commit -a|add と commit を一括で行う。|コミット|| |~|git commit -p|ファイル内の変更を部分的にコミットする。|コミット>(ファイルを選択して右クリックメニュー)>コミット後に復元|| |~|git commit --amend|直前のコミットの内容(メッセージや追加したファイルなど)を修正する。|コミット>最後のコミットをやり直し|| |~|git stash|ワーキングディレクトリのコミットしていない変更を退避する。|スタッシュへ変更を隠す|| |~|git branch|カレントブランチから新しいブランチを作成する。|ブランチを作成|| |~|git branch -d|ブランチを削除する|リファレンスをブラウズ>(ブランチを選択して右クリックメニュー)>ブランチを削除|| |~|git checkout|ブランチを切り替える。|切り替え|| |~|git checkout --|ワーキングディレクトリの変更を取り消す|変更の取り消し|| |~|git merge [--ff]|可能であれば(カレントブランチからコミット履歴を単純に先に辿ったときにマージ対象のブランチが存在する場合)、早送りマージ(fast-forward merge)を行う。&br;早送りマージが行われると、カレントブランチの位置がマージ対象のブランチの位置に移動するのみで、新しいコミットは作られない。|マージ&br;※または、ログを表示>(コミットを選択して右クリックメニュー)>"xxx" へマージする|| |~|git merge --non-ff|早送りマージを行わず、マージ対象のブランチの先に新しいマージコミットを作成することでカレントブランチの内容をマージする。|マージ>ファストフォワードしない&br;※または、ログを表示>(コミットを選択して右クリックメニュー)>"xxx" へマージする>ファストフォワードしない|| |~|git merge --squash|カレントブランチのコミットを1つにまとめてマージ対象のブランチにコミットする。&br;マージコミットは作られない。|マージ>融合&br;※または、ログを表示>(コミットを選択して右クリックメニュー)>"xxx" へマージする>融合|| |~|git rebase|カレントブランチのコミット履歴を、リベース対象のブランチの先に付け替える。&br;元のコミット履歴は失われ、新しいコミットが作られる。|リベース(ブランチの付け替え)&br;※または、ログを表示>(コミットを選択して右クリックメニュー)>"xxx" をここにリベース(付け替え)|| |~|git rebase -i|インタラクティブモード(対話モード)を使用し、過去のコミット内容を修正できる。|※例:ログを表示>(複数の連続したコミットを選択して右クリックメニュー)>一つのコミットに集約|| |~|git cherry-pick|別のブランチの特定のコミットだけをカレントブランチに適用する。|ログを表示>(コミットを選択して右クリックメニュー)>このコミットをチェリーピック(採用)|| |~|git reset [--mixed]|過去のコミットを削除する。&br;ローカルリポジトリ、ステージングエリアの内容が削除される。|ログを表示>(コミットを選択して右クリックメニュー)>"xxx" をここへリセット>mixed|| |~|git reset --soft|過去のコミットを削除する。&br;ローカルリポジトリの内容が削除される。|ログを表示>(コミットを選択して右クリックメニュー)>"xxx" をここへリセット>soft|| |~|git reset --hard|過去のコミットを削除する。&br;ローカルリポジトリ、ステージングエリア、ワーキングディレクトリの内容が削除される。|ログを表示>(コミットを選択して右クリックメニュー)>"xxx" をここへリセット>hard|| |~|git revert|過去のコミットを打ち消すためのコミットを作成する。|ログを表示>(コミットを選択して右クリックメニュー)>このコミットの変更を戻す&br;※コミットはされない(git revert -n 相当?)|すでに push されたコミットにも安全に使用できる| |~|git tag|コミットにタグを付ける。|タグを作成&br;※または、ログを表示>(コミットを選択して右クリックメニュー)>このバージョンでタグを作成|| |~|git tag -a|コミットに注釈(作成者、日時、メッセージなど)付きのタグを付ける。|タグを作成&br;※または、ログを表示>(コミットを選択して右クリックメニュー)>このバージョンでタグを作成|| |~|git bisect|バグを混入したコミットを特定するための二分探索を行う。|二分探索開始|| |リモートリポジトリの操作|git push|ローカルリポジトリの指定したブランチをリモートリポジトリに反映する。|同期>プッシュ|| |~|git fetch|リモートリポジトリの全ブランチの全コミットの内容をローカルリポジトリに反映する(リモート追跡ブランチが更新される)。|同期>フェッチ|| |~|git pull|fetch した後、カレントブランチに対応するリモート追跡ブランチの内容をマージする。|同期>プル|fetch した後で merge することと同じ| |~|git pull --rebase|fetch した後、カレントブランチを対応するリモート追跡ブランチにリベースする。|同期>フェッチ&リベース|fetch した後で rebase することと同じ| |~|git reflog|削除してしまったコミットの情報などを参照し、元の状態に戻すことができる(GCされてしまった情報は参照不可)。|Reflogを表示|誤った作業をもとに戻すための最後の手段| |githubの機能|(fork)|github上のリモートリポジトリを複製する。|-|| |~|(pull-request)|変更をコミットしたブランチをgithub上のリモートリポジトリにpushし、元のブランチへのマージをリクエストをすること。&br;コードレビューを経てマージしてもらうことができる。|-||