まずは名前を変更する。lsで確認すると確かにtest.htmlがなくなり、index.htmlが出来ている。
$ git mv test.html index.html
この後にpushしてもリモートに変更は反映されない。
$ git push github Enter passphrase for key '/home/**************************************': Everything up-to-date
そこでcommitした後にpushする。これでリモートレポジトリの内容がローカルコピーと同じになったことになる。
$ git commit -a rename file # Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # renamed: test.html -> index.html # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # ********** # ***************** # ************* # ****************** ".git/COMMIT_EDITMSG" 16L, 441C written [master 50ce9a8] rename file 1 files changed, 1 insertions(+), 1 deletions(-) rename test.html => index.html (75%) $ git push github Enter passphrase for key '/home/**************************************': Counting objects: 4, done. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 386 bytes, done. Total 3 (delta 0), reused 0 (delta 0) To git@github.com:l/test.git 078e960..50ce9a8 master -> master
考えてみれば当然で、git mvやgit addはファイル編集のようにローカルの変更はcommitして初めてpushされるというルールは常に有効なのである。