参考サイト

開発フロー

git flow

リポジトリ管理

gitosis

コマンド覚え書き

  • 実際にファイルを消さずにgitの管理下から削除する
    git rm --cached <filename>
  • リモートブランチの削除
    git push origin :branch_name
  • リモートトラッキングブランチの削除
    git branch -r -d origin/branch_name
  • UTF8で日本語ファイル名が「\xxx\xxx\xxx…」となるのを解決
    git config --global core.quotepath false

    参考:git/日本語ファイル名をgit statusなどで表示する方法 – TOBY SOFT wiki

Tips

git diffの差分ファイルを抽出

サーバにUPする際、追加・変更したファイルのみをフォルダ構成そのままで抽出したいときに

さくらレンタルサーバーにGitをインストールする

makeではなくgmakeを使う

WEBの公開領域上で.htaccessを使って.gitディレクトリを隠す

Hide git folder with .htaccess

RedirectMatch 404 "(?:.*)/(?:\.git|file_or_dir)(?:/.*)?$"

git diffの文字化け

git pushした後の取り消し

gitで共用リポジトリにpushした変更を取り消す。 – このブログは証明できない。

git commit後、git pushしてしまったコミットを取り消す。

  1. ローカルリポジトリに対して、直前のコミットを取り消す
    git reset (--soft|--hard) HEAD^
  2. リモートリポジトリ(ブランチ名:master)に対して、pushしたコミットを取り消す
    git push -f origin HEAD^:master

リモートリポジトリを共有している場合は、注意。2の前に共有している人がpullしてしまったら、2の作業の後、その人のローカルリポジトリに対しても取り消し作業を行う必要がある。

隣接する2つのコミット履歴を1つに統合

git – 2つのコミット履歴を1つに統合する – Qiita [キータ]

誤ってpush前にGit管理下のファイルを消してしまう操作をしてしまったが、幸いロックがかかって.git/objectsに直近更新日時のファイルがいくつか残っていたときのできる限りの復旧

git cat-fileを使って内容を復元、ファイルに適用してく

「.git/objects/0e/69837e6292d37cbe75104c29a8a60c7ae4f839」の中身を参照したい場合

git cat-file 0e69837e6292d37cbe75104c29a8a60c7ae4f839

内容を確認して、問題なければ

git cat-file 0e69837e6292d37cbe75104c29a8a60c7ae4f839 > /path/to/file

[git] Gitの内部におけるデータ格納方法について – YoheiM .NET

コミットのメールアドレスを一括で変更

Git – 歴史の書き換え

$ git filter-branch --commit-filter '
        if [ "$GIT_AUTHOR_EMAIL" = "schacon@localhost" ];
        then
                GIT_AUTHOR_NAME="Scott Chacon";
                GIT_AUTHOR_EMAIL="schacon@example.com";
                git commit-tree "$@";
        else
                git commit-tree "$@";
        fi' HEAD

.gitignoreファイルテンプレート集

github/gitignore