Надоело постоянно гуглить одно и то же, решил записать в отдельную заметку.

 

  1. Установить значения username/email:
    $ git config --global user.email "e0ne@e0ne.info"
    $ git config --global user.name "e0ne"

    через .gitconfig это делать не всегда удобно, т.к. иногда нужно разные name/email для разных upstream repos
  2. Установить upstream branch:
    $ git branch --set-upstream master upstream/master
  3. Поменять последний коммит:
    $ git commit --amend -a
  4. Поменять автора нескольких коммитов:
    $ git filter-branch --commit-filter '
            if [ "$GIT_COMMITTER_NAME" = "<Old Name>" ];
            then
                    GIT_COMMITTER_NAME="<New Name>";
                    GIT_AUTHOR_NAME="<New Name>";
                    GIT_COMMITTER_EMAIL="<New Email>";
                    GIT_AUTHOR_EMAIL="<New Email>";
                    git commit-tree "$@";
            else
                    git commit-tree "$@";
            fi' HEAD
    $ git push
  5. После мерджа пометить конфиликт как resolved:
    $ git add file
  6. Откатить локальные коммиты:
    reset --soft HEAD^
  7. Переместить тег на другой коммит:
    $ git tag -d ver_0.1
    $ git push origin :refs/tags/ver_0.1
  8. Лучший мануал по git’у:
    http://git-scm.com/book
  9. Мой .gitconfig лежит тут: https://github.com/e0ne/dot-files/blob/master/.gitconfig
  10. Мой .gitignore лежит тут: https://github.com/e0ne/dot-files/blob/master/.gitignore
  11. Cоздаем branch из tag'а: http://blog.e0ne.info/post/Git-create-branch-from-tag.aspx
  12. Мерджим апдейты с другого репозитория: http://korenkov.info/fetching-updates-from-another-git-repo

    [Updated 26.04.13]
  13. Обновить исходники, затирая локальные изменения:
    $ git fetch --all
    $ git reset --hard origin/master
  14. Удалить все недобавленные в репозиторий файлы и директории:
    $ git clean -f -d

 


Comments are closed