読者です 読者をやめる 読者になる 読者になる

Git 使い方アレコレ

構成

クライアント MacBook
サーバ Linux
作業ディレクトリ myproj

初期設定

名前とメールアドレスの設定。

  
$ git config --global user.name "hoge"  
$ git config --global user.email "hoge@mail.com"  

色の設定。

  
$ git config --global color.ui auto  

リポジトリ作成

myproj ディレクトリをリポジトリ化する。

  
$ mkdir myproj  
$ cd myproj  
$ git init  

リモートサーバに空のリポジトリつくる。

  
$ ssh remote-host  
$ mkdir myproj  
$ cd myproj  
$ git init --bare  

ファイル追加&コミット

ファイルを追加する。

  
$ vi a.txt  
$ git add a.txt  
$ git commit -m "add a.txt"  

add 取り消し

間違って add したファイルを取り消す

  
$ vi b.txt  
$ git add b.txt  
$ git rm --cached b.txt  

間違って add したディレクトリを再帰的に取り消す

  
$ mkidr src  
$ cd src  
$ vi c.cpp  
$ cd ../  
$ git add src  
$ git rm --cached -r src  

svn revert 的な機能

a.txt を元に戻したい場合。

  
$ git checkout a.txt  

リモートにプッシュ&プル

リモートサーバに push, リモートサーバから pull する。

  
$ git remote add origin name@remote-host:myproj  
$ git push origin master  
$ git pull origin master  

push, pull の default を設定

push, pull する default 宛先を設定する。
今回は、branch master → origin へ。

  
$ git config --add branch.master.remote origin  
$ git config --add branch.master.merge master  

このままだと push するとき waring が出るので、 config に適切な値を設定する。

  
$ git config --global push.default matching  

参考:git config push.default matching

ファイル移動&リネーム

ファイルやディレクトリの移動、リネームをする。

  
$ git mv a.txt b.txt  

大文字から小文字へといったリネームの際、失敗することがある模様。
以下、実際にエラーが出た例。

  
$ git mv LaunchDaemons/ launchdaemons/   
fatal: renaming LaunchDaemons failed: Invalid argument  

いったん、別名にしてあげれば対処可能。
なんか腑に落ちなくはあるけども。

  
$ git mv LaunchDaemons/ launch_daemons/  
$ git mv launch_daemons/ launchdaemons/