メモ帳

メモ帳です.

Gitの基本知識

Gitを使い始めて、便利だと思った機能等をメモ。

.gitignore

これはGitで管理する必要のないもの、例えば、エディタのバックアップファイル等を登録しておくことで、リポジトリの管理対象外にすることでできる。

*~    //emacs
*.swp //vimのバックアップファイル

ファイル名を変更

ファイル名を変更するには

git mv foo bar

これでファイル名をfooからbarに変更できる。コマンド実行後はワーキングツリー、インデックス共にファイル名が変更された状態になっている。

直前のコミットを変更する

コミットした後にコミット内容やコミットメッセージを変更したいときは、間違いを訂正して新たにコミットを行う機能がある。それが--amendオプションである。 ・コミット内容を変更する場合 コミット後にREADMEのタイプミスが見つかったとする。これを変更するにはまずファイルを修正してインデックスに追加する。

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の管理対象外となっているファイルが表示される。