「追跡対象」とは
ここで言う「追跡対象」とは、わかりやすく言えばバージョン管理の対象としてGitに登録してあるファイルのことです。
変更した時にその変更を覚えておく対象
という認識で問題無いと思われますが、正確には「変更した時」ではなく「コミットした時」ですね。
なお、「追跡」という言葉は「tracking」を直訳した言葉であり、「追跡ブランチ」のようにブランチに対して使われた場合「あるブランチを追いかけているブランチ」という意味になります(「master
はorigin/master
を追跡している」「origin/master
はリモートorigin
のmaster
ブランチを追跡している」)。
各コマンドの説明
rm
指定したファイルをバージョン管理の対象から外すコマンドです。ファイルは削除され、コミットすると以後そのファイルはGitの管理対象から外されます。
おそらくGitにおいて「削除」と言ったらこれを指すのではないでしょうか。
reset
今チェックアウトしているブランチが指すコミットを強制的に変更したり、indexの内容をチェックアウトしているコミットの内容に戻したり、作業コピーの内容をindexの内容に戻したりするコマンドです。
「たり」が多いですが、実際reset
コマンドはいくつかの機能を複合したものであり、コマンドの実行方法や指定したオプションによって使われる機能が変わってきます。
もし「index」や「staging」の概念をまだ知らないのであれば、きちんと知っておいてください。他のバージョン管理システムには無いGit特有の概念です。
例えば単にgit reset
すると、indexの内容のみが今チェックアウトしているコミットの内容に戻り、作業コピーの内容は変更されません。間違えてadd
やrm
してしまった時などにどうぞ。
--hard
オプションを付けてgit reset --hard
すると、上に加えて作業コピーの内容も戻され、作業コピーの内容が今いるコミットの内容に戻ります。コミットしていない変更をすべてリセットしたいときにどうぞ。
更にコミットを指定してgit reset --hard <commit>
とすると、今いるブランチが指定したコミットへ強制的に移動され、さらにindex・作業コピーの内容もそれに合うように書き換えられます。origin/*
以前でやっちゃダメよ。
他にも色々オプションがあるのでご自分で調べてください。
clean
作業ディレクトリにあるバージョン管理外のファイルをお掃除するコマンドです。開発中にできたキャッシュ等のゴミファイルを削除してくれます。ただしバージョン管理対象外のファイルをすべて削除してしまうので、その中に必要なファイルが含まれないか注意してください。
従って、git reset --hard && git clean -xdf
すると、作業ディレクトリの内容がチェックアウトしているコミットの内容に完全に一致します。とにかく全部リセットしたいときに使えます。
revert
指定したコミットの逆コミットを作るコマンドです(「逆コミット」は今勝手に考えた言葉です)。上の3つとは違い、新たにコミットが作られます。
以前行ったコミットを取り消したいと思ったとき、そのコミットをrevert
すると、そのコミットの変更を逆にしたコミットを作成してくれます。失われる歴史が無いので安心して使えます。ただしもちろん、そのコミットと同じ行を何度か編集していた場合は競合が起こります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/27 07:07