一般
git add .
git commit -m "comment"
git push -u origin master dev
git push --force origin master dev
最新のコミットメッセージの変更
git commit --amend -m "新しいメッセージ" # 最新のコミットメッセージの変更
リモート
git remote add origin URL # リモートのAdd
git remote set-url origin URL # リモート(origin)のURL変更
複数のリモート登録
git remote add mysrv URL # originと違う名前(mysrv)指定してリモート追加
git remote set-url mysrv URL # リモート(mysrv)のURL変更
これで
git push -u mysrv dev # mysrvとして登録したURLのリポジトリにブランチdevをプッシュ
とかできる
git remote -v # リモートのURL確認
クローン・プル・チェックアウト・ブランチ・フェッチ
git clone URL # 指定URLのリポジトリをローカルにコピー
git branch -a # ブランチ一覧表示
git branch -d # ブランチの削除
git checkout # ただチェックアウト
git checkout -b dev origin/dev # cloneしてきてローカルにmasterしかないとき、ローカルにdevというブランチを新たに作る、それはリモートoriginのdevと同じ内容。
git pull origin new-branch:new-branch
remoteにあるのが正義,localにあるものはいらないという時は
git reset --hard origin/branch
とするとremoteの内容で完全に上書きされる.(localの情報が失われるので注意)
git fetch # fetch?
git branch -D # Delete Branch
スタッシュ(変更内容のクリーン)
stash save # 現在の作業を一時的に退避
stash list # 退避した作業の一覧を表示
stash drop # 退避した作業を削除
stash clear # 退避した作業を全て削除したい
リベース
古いコミットから生やしたブランチからマージ先のブランチにpull requestを送ると,衝突したら迷惑をかけることになる.そのため事前に最新のマージ先ブランチのコミットにリベースをしてからpull requestを送る.
リベース衝突の解消
衝突した場合,ツリーの一番上に衝突情報が表示される
衝突したファイルを手動で修正し,
git add <衝突したファイル>
git rebase --continue
SourceTreeの場合は衝突したファイルを手動で修正してコミットを押した後,リベースを続けるを選択.
リベースを取りやめたい場合
git rebase --abort # リベースのキャンセル
それぞれのコミットが差分を保持しているため,最終的な状態が衝突しない状態であったとしても,一つでも衝突するコミットがあると衝突する.
タグ
git tag # タグの一覧表示
git checkout refs/tags/ # タグをチェックアウト
git checkout -b refs/tags/ # ブランチを作成してタグをチェックアウト
リモート上では削除されているのにローカルにまだ参照が残っているブランチの削除
git remote prune --dry-run origin # remoteブランチでは削除されているが、ローカルに参照が残っているブランチを表示
git remote prune origin # すでに削除されているremoteブランチのローカル参照を削除してきれいにする
http://qiita.com/kony/items/f0fb18b04bd5337132e3
設定
git config --global user.name "taro"
git config --global user.email taro@example.ac.jp
追跡されているファイルを後から.gitignoreにファイルに入れた場合
$ git rm -r --cached .
で、すべてadd, commit すると、diffにはgitignoreにいれたファイルの削除分だけ入る。
Git LFS
コミット
$ git lfs install # LFS を使うようにrepository initialize
$ git lfs track "*.jpg" # jpg を LFS の対象にする
$ git add *
$ git commit -m “first commit”
$ git lfs ls-files
# コミットされたLFS対象ファイルが表示される
$ git push origin master
# LFSをSkipしてClone
$ GIT_LFS_SKIP_SMUDGE=1 git lfs clone <url>