git コマンドメモ

  • 今いるブランチを確認(* がついているもの)

    git branch
    
  • 今いるローカルブランチからローカルに別ブランチを作る

    git branch [local_branch]
    
  • ローカルの別ブランチへ移動

    git checkout [local_branch]
    
  • ローカルにブランチを作ってリモートリポジトリをチェックアウト

    git checkout -b [local_branch] [remote_alias]/[remote_branch]
    
  • ローカルブランチからリモートブランチを作成して push

    git push origin hogefuga
    
  • git の変更一時保存

    git statsh save "message"
    
  • git の一時保存一覧参照

    git stash list
    
  • git の一時保存から戻す

    git stash pop stash@{0}
    
  • commit 済みのファイルをリポジトリから消す

    git rm --cached file
    
    git rm -fr --cached /path/to/folder
    
    ※.gitignore にフォルダ、ファイルを追加すれば次からは git 管理外にできる
    
  • リビジョンを1個前に戻す。working directoryは無変更

    git reset HEAD^ --soft
    
  • リビジョンを3個前に戻す。working directoryも戻す

    git reset HEAD~3 --hard
    
  • 特定リビジョンに戻す

    git reset [revision] --hard
    

指定したリビジョンまで戻す。 指定したリビジョンは消えない。

  • 2個前のコミットのみをなかった事にする

    git revert HEAD~2
    
  • git add を取り消すのにも使える。git add の取り消しはアンステージという

    git reset file_name
    
  • First Commit を rebase する

    git rebase -i --root
    
    fixup してコミットを1つにまとめたり
    
  • Git で不要になったローカルブランチの削除

    git branch -d hoge
    
  • Git で不要になったリモートブランチの削除

    git push origin :hoge
    
  • リモートブランチの一覧をみる

    git remote -v
    
  • リモートブランチ追加

    git remote add remote-name url
    
    git remote add -f remote-name url
    
    こっちはフェッチする
    
  • リモートリポジトリから変更を取り込むときに比較する

    git fetch origin mater
    git diff FETCH_HEAD
    
    git difftool FETCH_HEAD #もできる
    
  • ローカルブランチ間のdiff

    git diff [local_branch]
    
  • ローカルの merge で diff

    これのやりかたがわからない・・・
    やり方教えください。。。
    
    git merge --no-commit --no-ff [local_branch]
    これでコミットなしでマージして比較するくらい
    git diff HEAD で確認できました。
    
    そもそもこれがなぜやりたいかというと、
    開発用ブランチ(ローカル、リモート)で開発用の設定を
    コミットしたものを取り込みたくなくて、
    それをスマートにやる方法が分からずに、
    diff みて手動修正しようとしています。
    
    →git merge のときに、--no-commit --no-ff で手動でマージして
    コミットすれば次からは差分としては認識されなくなるので
    この方法であれば開発用ブランチの設定を取り込まず、
    一度だけ手動でマージすれば次からは意識しなくてよくなります。
    ただし、該当箇所を開発用ブランチで修正するとコンフリクトするので注意。
    あと、履歴に残らないので激しく非推奨ですね。
    正しくはどういうフローでやるべきことなんだろうか・・・。
    
  • git リモートリポジトリ作成

    git init --bare --shared=true
    
  • git を ssh で使用

    git remote add <alias> ssh://<username>@<hostname>/path/to/
    
    注意としては、ssh config に使用する鍵ファイルを指定しておくこと
    
    Host 127.0.0.1
        HostName        127.0.0.1
        IdentityFile    ~/.ssh/hogehoge.pem
        User            sshuser
    

変更を一時的に退避!キメろgit stash - Qiita [キータ]

git addの取り消しと、コミット済みのファイルを除外する方法 - kanonjiの日記

git reset と git revert についてメモ - u16suzuの blog

Git で不要になったローカルブランチ・リモートブランチの削除 - sotarokのお勉強

gitでマージとかdiffとかコミットまとめてpushするとか - ikeike443のブログ

transitive.info - git merge 使い方

図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ