基本操作


ファイル名の変更

git mv <前filename> <変更後filename>
変更状態が"renamed"となる.

mvでもファイル名は変更できるが,
"変更前filename"が"deleted","変更後filename"がuntrackのとして認識される.
この場合,stageに上げる際に,
git add -A
とすることで,名前変更状態"renamed"として認識される.


ファイルの削除

git rm <filename>
gitで削除の管理をすると,戻すこともできる.
このコマンドでファイル削除すると,stageに状態"deleted"が追加される.
・commitすればリポジトリに"削除"commitとして管理される.
・restore (verによってはresest等)でWorkingDirectoryに戻し,さらにrestoreすれば削除がなかったことに.

留意点:削除した時点でローカルが最新になるため,リモートからpullすることは不可.

untrackのものは削除できない.

rm <filename>
でやれば,gitの管理外で削除になる

stageに上がってるものは削除できない

stageに上がってる状態でrmを用いて削除すると,
WorkingDirectoryに"deleted"状態が追加.
これをstageに追加すれば,stageにあるものと相殺される.

コミット履歴の確認

1行で表示させたい

git log --oneline

コミットを線でつなぐ

git log --graph

特定のファイルのlogを表示

git log -- <filename>

ファイル名の変更も含め特定のファイルのlogを表示

git log --follow <filename>

特定のコミットについて情報を表示

git show <commitID>
commitIDは,logで表示される文字の羅列.
--onelineで表示される省略形でも可能.
というか,その一部だけでも良いみたい.

コミットについて

コミットはひとつ前のを親として次々とつながってる.
ブランチはそのコミットを指すポインタ
HEADは今作業しているブランチのポインタ

gitの管理から外す

外すべきファイル

サイズが大きなファイル,機械学習のモデルファイルなど.
バイナリファイル(動画,画像)←gitが管理できない.
中間ファイル
パスワード等の外部で知られて困るファイル
システムが生成するファイルやキャッシュファイル(.DS_Store等)
https://github.com/github/gitignore
に外すべきファイルが羅列されてる

指定方法

・ファイルの場合
hoge.txt
ワイルドカード*が使える. *.txt

・ディレクトリの場合
hoge/