Gitの基本知識
Gitを使い始めて、便利だと思った機能等をメモ。
.gitignore
これはGitで管理する必要のないもの、例えば、エディタのバックアップファイル等を登録しておくことで、リポジトリの管理対象外にすることでできる。
*~ //emacs *.swp //vimのバックアップファイル
ファイル名を変更
ファイル名を変更するには
git mv foo bar
これでファイル名をfooからbarに変更できる。コマンド実行後はワーキングツリー、インデックス共にファイル名が変更された状態になっている。
直前のコミットを変更する
コミットした後にコミット内容やコミットメッセージを変更したいときは、間違いを訂正して新たにコミットを行う機能がある。それが--amendオプションである。
git add README
その後に以下のコマンドを実行すると直前のコミットが変更される。
git commit --amend
・コミットメッセージを修正する場合 この場合はすぐに以下のコマンドを打つと新たにコミットメッセージを入力できる。
git commit --amend
最新のコミット状態へ戻す
誤ってファイルを削除してしまったりした場合に用いる。 仮に.bashrcを削除してしまったとする。 このとき、ワーキングツリーからは削除されているが、インデックスには変わらずに登録されたままになっている。 そこで下のコマンドを実行すると、最新のコミット(HEAD)のときの.bashrcへ戻してくれる。
git checkout HEAD .bashrc
bareリポジトリ
リモートリポジトリを作成するときはbareリポジトリとして作成すると、変更のみを管理するリポジトリとなり、ワーキングツリーとインデックスとの差異で生じるトラブルを抑えることができる。
git init --bare
git config
git configは、ホームディレクトリにある.gitconfig、リポジトリ内の.git/configの2つあるが、優先順位としては後者が優先される。
git statusの詳細
On branch master: この状態でコミットすると、masterブランチにコミットされることを示す。
nothing to commit: ワーキングツリー、インデックスに対して変更がない場合。
Changes to be committed: ここに表示されるファイルは次回のコミットの対象になる。git addでインデックスに登録したファイルや、git mergeコマンドでマージされたファイルなどが含まれる。
Changes but not updated: ワーキンググリーで変更されているが、その変更がインデックスに登録されていないファイルが表示される。
Untracked files: ワーキングツリーには存在するが、Gitの管理対象外となっているファイルが表示される。